问题标签 [pylucene]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1924 浏览

lucene - Lucene:使用 FuzzyQuery 在搜索中搜索

我需要使用包含大约 800 万行的索引来制作FuzzyQuery 。这种查询非常慢,每次匹配大约需要 20 秒。事实是,在进行模糊搜索之前,我可以使用另一个字段将结果缩小到大约 5000 个命中。为此,我应该能够先通过“较窄”字段进行搜索,然后在这些结果中使用模糊搜索。

根据lucene FAQ,我唯一要做的就是BooleanQuery,其中应该需要“更窄”(在 lucene 3 中为BooleanClause.Occur.MUST )。

现在我尝试了两种不同的方法:

a)使用查询解析器,输入如下: narrower:+narrowing_text fuzzy:fuzzy_text~0.9

b)使用TermQueryFuzzyQuery构造BooleanQuery

也没有工作,我得到的时间与不使用较窄的时间大致相同。

此外,只是为了检查是否窄的工作时间应该更好,我只重新索引了与窄匹配的 5000 个项目,搜索速度非常快。

如果有人想知道,我使用的是 pylucene 3.0.2。

0 投票
2 回答
2101 浏览

python - pyLucene 安装

我在 Ubuntu 10.04、Python 2.6.5 上安装 pyLucene 时遇到了一些问题。

这是我到目前为止所做的,安装了这些软件包 -

之后从http://www.apache.org/dyn/closer.cgi/lucene/pylucene/获得 pyLucene 的源代码。我得到了 pylucene-3.0.1-1 版本。

解压它。由于需要先建JCC;转到 JCC 目录,然后输入python setup.py install. 收到有关某些 setuptools 补丁的错误。它告诉我这样做 - sudo patch -d /usr/lib/python2.6/dist-packages -Nup0 < /home/code/python/lucene/pylucene-3.0.1-1/jcc/jcc/patches/patch.43.0.6c11

我做到了。但我在终端上得到了这个 -

现在我的构建失败了——即当我这样做时sudo python setup.py build——

0 投票
1 回答
2415 浏览

java - 在 Ubuntu 10.04 上安装 PyLucene 3.0.3

我正在尝试在 Ubuntu 10.04 上安装 PyLucene 3.0.3。这已被证明相当具有挑战性,但到目前为止,我已经:

  • 按照 PyLucene 文档中的说明,修补了 setuptools 以允许构建 JCC。
  • 通过以下方式构建 JCC:cd pylucene-3.0.3-1/jcc;python setup.py 构建
  • 通过ant构建Lucene 3.0.3,并将jar安装到/usr/share/java/lucene-core-3.0.3-dev.jar。请注意,我将 Ubuntu 的默认 Lucene 包安装到 /usr/share/java/lucene-core-2.9.2.jar,它也符号链接到 /usr/share/java/lucene-core.jar

我现在正在尝试“制作” PyLucene,但出现错误:

文件 pylucene-3.0.3-1/doc/documentation/install.html 提到“编辑 Makefile 以匹配您的环境”,但我不确定这意味着什么。makefile 似乎包含与我安装的相同的 Lucene 版本号。为了构建 PyLucene,我还需要如何编辑我的 makefile?

编辑:取消注释 makefile 中的一个部分(感谢 Torsten)在 Ubuntu 8.10(说真的,8.10?!)下编译后,大部分似乎编译得很好,但我仍然收到一个错误。几个组件报告“构建成功”,但最终构建以:

0 投票
2 回答
372 浏览

python - 使用 PyLucene 作为 K-NN 分类器

我有一个由数百万个示例组成的数据集,其中每个示例包含 128 个按名称分类的连续值特征。我正在尝试找到一个强大的大型数据库/索引来用作高维数据的 KNN 分类器。我尝试了Weka 的 IBk 分类器,但它在这么多数据上窒息,即使那样它也必须加载到内存中。Lucene ,特别是通过PyLucene接口,会是一个可能的替代方案吗?

我找到了Lire,它似乎以类似的方式使用 Lucene,但是在查看代码之后,我不确定他们是如何将其拉下来的,或者这是否与我正在尝试做的事情相同。

我意识到 Lucene 被设计为文本索引工具,而不是通用分类器,但是可以以这种方式使用它吗?

0 投票
1 回答
540 浏览

lucene - 将 SnowBallAnalyzer 与 PyLucene 结合使用

我正在尝试在 PyLucene 中使用 SnowBallAnalyzer,但我总是收到一条错误消息:当我尝试像这样创建它的实例时出现 InvalidArgsError:

analyzer = SnowBallAnalyzer("Spanish")

或者

analyzer = SnowBallAnalyzer("Spanish", STOPWORDS)

我真正需要的是,如果我搜索“Fútbol”,我应该获得包含“futbol”或“fútbol”这个词的文档。所以...我想将 SnowBallAnalyzer 应用于我想索引查询的文本。

任何帮助将不胜感激。

提前致谢。

0 投票
1 回答
1502 浏览

python - 在 Django 中使用 pylucene 时执行 initVM 和 attachCurrentThread 的最佳位置在哪里

我在基于 django 的站点中使用 pylucene,我想知道是否有人知道启动 jvm 和附加线程的最佳位置在哪里。我不想每次有人加载页面时都必须启动一个新的 jvm,但是当我在搜索时附加线程时,我偶尔会在 django 中遇到神秘的“无法导入名称”错误。

在views.py中附加线程是错误的吗?

编辑:我正在专门寻找一种方法来实例化单个 jvm 并让它运行,这样我就可以根据需要将线程附加到它。实例化 jvm 大约需要两秒钟,这是搜索时明显的延迟。

0 投票
1 回答
115 浏览

python - apache会杀死我的进程吗?

我有一个关于 lucene 和 apache 的奇怪问题。我正在使用 lucene 进行全文搜索以及我需要调用的搜索:

initVM()

我发现在这个调用之后没有任何东西被执行。所以这一切都发生在通过 apache 处理的 http 请求上。

现在,当我尝试在交互式命令提示符下手动执行此操作时,它可以正常工作。

以下是一些相关的 apache 配置行:

编辑

当手动执行它时,我认为它会创建 9 个线程:

提前致谢!

0 投票
1 回答
554 浏览

python - PyLucene Custom TokenStream using PythonTokenStream

I am attempting to build a TokenStream from a Python Sequence. Just for fun I want to be able to pass my own Tokens directly to

I tried to make "MyTokenStream" by...

But unfortunately a wrapper for "TermAttribute" doesn't exist, or for that matter any of the other Attribute classes in lucene so I get a NotImplemented error when calling them.

This doesn't raise an exception - but I'm not not sure if it's even setting the terms.

0 投票
2 回答
1745 浏览

python - pylucene:安装错误

更新问题:

谢谢法沃雷蒂!

我使用apt-get安装了jcc,pylucene下的makefile运行了一点,抛出了一个java错误,我不知道。这里是。你能告诉我这是什么错误吗?

0 投票
1 回答
185 浏览

python - Lucene 自动索引器

我刚开始学习 Lucene,想用它来索引硬盘和我的电子邮件,我想知道 Lucene 是否有帮助我的东西,或者我必须建立某种观察者,观察任何变化在硬盘驱动器中讨论:如何使用 Python 观察文件的更改?

谢谢