1
我读过关于在Lucene的突出的搜索字词一些教程,并用一块像这样的代码上来:如何在pyLucene中使用荧光笔?
(...)
query = parser.parse(query_string)
for scoreDoc in searcher.search(query, 50).scoreDocs:
doc = searcher.doc(scoreDoc.doc)
filename = doc.get("filename")
print filename
found_paraghaph = fetch_from_my_text_library(filename)
stream = lucene.TokenSources.getTokenStream("contents", found_paraghaph, analyzer);
scorer = lucene.Scorer(query, "contents", lucene.CachingTokenFilter(stream))
highligter = lucene.Highligter(scorer)
fragment = highligter.getBestFragment(analyzer, "contents", found_paraghaph)
print '>>>' + fragment
但是这一切都以错误结束:
Traceback (most recent call last):
File "./search.py", line 76, in <module>
scorer = lucene.Scorer(query, "contents", lucene.CachingTokenFilter(stream))
NotImplementedError: ('instantiating java class', <type 'Scorer'>)
所以,我猜测,这部分Lucene并没有在pyLucene中实现。有没有其他方法可以做到这一点?
谢谢!似乎这里最重要的部分是创建'QueryScorer'而不是'Scorer' - 现在,当我在Lucene的文档中查找它时,发现'Scorer'是一个抽象类,所以这就是错误出现的原因。并且名字'NotImplementedError'在这里是相当误导的... – mik01aj 2012-09-26 18:10:21
代码很好用。有一点要提,StringReader是从java.io中导入的,而不是从lucene中导入的。 – vancexu 2014-04-22 05:24:43