【问题标题】:Lucene: how can I find query hit positions in original contents?Lucene:如何在原始内容中找到查询命中位置?
【发布时间】:2012-01-15 07:29:59
【问题描述】:

假设我有一个已在 Lucene 中编制索引的文档集合。我提交查询并获得点击率。现在我想要的是找到特定文档命中的位置。我知道我可以使用 Lucene Highlighting 类来获取相关片段。但是如何才能知道这些片段究竟出现在原始内容中的什么位置呢?

一个相关的问题是如何确保找到的片段实际上非常接近原始查询?我注意到在我的高亮实验中,我经常会有一个多词查询,它会返回只有其中一些词的片段。但是,如果我想确保我得到所有单词的点击率怎么办?

谢谢!

【问题讨论】:

  • I Z,我注意到,当您提出问题时,您并不总是接受或赞成答案。好吧,实际上你从来没有这样做过。你看,这会阻止 SO 成员回答你的问题。对我来说,我并不只关心声誉积分,但很高兴知道我的回答是否有帮助。因此,请跟进您的问题,至少添加一些评论。谢谢

标签: search lucene match highlighting


【解决方案1】:

不是一个实际的答案,只是一些类似问题的解决方案的链接。

首先,在这里您可以看到突出显示的实际结果(请注意,尽管 am 在查询中,但 were 已突出显示。词干是此实现的附加功能): 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 版本,这可能不是最新的。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-15
    • 2012-10-06
    • 2010-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-22
    • 1970-01-01
    相关资源
    最近更新 更多