Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Lucene:返回文档的最快方法是出现一个短语?_Python_Search_Lucene - Fatal编程技术网

Python Lucene:返回文档的最快方法是出现一个短语?

Python Lucene:返回文档的最快方法是出现一个短语?,python,search,lucene,Python,Search,Lucene,我试图使用Lucene(实际上是PyLucene!)来找出有多少文档包含我的确切短语。我的代码目前看起来像这样。。。但它运行得相当慢。有人知道一种更快的返回文档计数的方法吗 phraseList = ["some phrase 1", "some phrase 2"] #etc, a list of phrases... countsearcher = IndexSearcher(SimpleFSDirectory(File(STORE_DIR)), True) analyzer = Stan

我试图使用Lucene(实际上是PyLucene!)来找出有多少文档包含我的确切短语。我的代码目前看起来像这样。。。但它运行得相当慢。有人知道一种更快的返回文档计数的方法吗

phraseList = ["some phrase 1", "some phrase 2"] #etc, a list of phrases...

countsearcher = IndexSearcher(SimpleFSDirectory(File(STORE_DIR)), True)
analyzer = StandardAnalyzer(Version.LUCENE_CURRENT)

for phrase in phraseList:
     query = QueryParser(Version.LUCENE_CURRENT, "contents", analyzer).parse("\"" + phrase + "\"")
     scoreDocs = countsearcher.search(query, 200).scoreDocs
     print "count is: " + str(len(scoreDocs))

通常,编写自定义命中收集器是使用位集计算命中数的最快方法,如的javadoc所示

另一种方法是获取TopDocs,并将结果数指定为一

TopDocs topDocs = searcher.search(query, filter, 1);
topDocs.totalHits
将为您提供结果总数。我不确定这是否和计算分数一样快,这在前面提到的方法中被跳过了

这些解决方案适用于Java。您必须检查Python中的等效技术