Lucene:如何在原始内容中找到查询命中位置?

时间:2011-12-07 19:23:30

标签: search lucene match highlighting

假设我有一个我在Lucene中编入索引的文档集。我提交了一个查询并获得了点击量。现在我想要的是找到特定文档命中的位置。我知道我可以使用Lucene Highlighting类来获取相关片段。但是,我怎样才能找出这些片段在原始内容中出现的确切位置?

一个相关的问题是如何确保找到的片段实际上非常接近原始查询?我在实验中注意到突出显示通常我会有一个多字查询,它会返回只包含其中一些单词的片段。但是,如果我想确保获得所有单词的命中,该怎么办?

谢谢!

1 个答案:

答案 0 :(得分:0)

不是一个真正的答案,只是解决类似问题的几个链接。

首先,在这里您可以看到突出显示的实际结果(请注意were虽然am在查询中已突出显示。但是,此实现的另一个特性是: http://hunglish.hu/search?huSentence=&enSentence=I%20am%20highlighted&size=20&page=2&doc.genre=-10

这是来源。寻找以下方法:highlightFieldhighlightBisen http://code.google.com/p/hunglish-webapp/source/browse/trunk/src/main/java/hu/mokk/hunglish/lucene/Searcher.java

免责声明:我刚才写过这篇文章,它不是很好的代码,在特殊情况下它是错误的:there is an open issue relating to highlighting。此外,它使用了lucene-highlighter的版本3.2.0,这可能不是最新版本。

无论如何,我希望如果你看看它是如何工作的,它可以帮助你写出一个更好的,或者至少可以按预期工作的东西。