【发布时间】:2014-02-11 11:53:08
【问题描述】:
我不是Lucene 的专家,但我想修改它以满足以下要求:
我将每个句子视为不同的文档并对其进行索引以测试搜索。
例如,
输入句子: Sam 吃苹果。杰夫吃橘子。山姆山姆和山姆只吃苹果。 Jeff jeff and only jeff 吃橘子 橘子也只吃橘子。
当前搜索
当我搜索“Sam eats apples”时,当前的 Lucene 搜索得分“Sam sam and sam eats apples and only apples.”最高,因为它包含这些术语像 "sam"、"eats" 和 "apples" 更多,文档出现在顶部。
修改后的搜索(我想要的)
现在,当我搜索“Sam eats apples”时,我希望文档“Sam eats apples”得分最高,因为它得到了完全匹配(以及根据查询的顺序,即 Sam(第一)、eats(第二)和 apples(第三)。
我想做的事: 进行自定义查询、权重和评分(通过扩展 Query、Weight 和 Scoring 类)。
可行吗?和价值?或者除此之外还有其他选择吗?
任何建议对我来说都很有价值,因为我只是Lucene 的初学者。
【问题讨论】:
-
这是最艰难的路线,
Weight是许多优化发生的地方。试着看看其中一个标准实现,我保证让你头晕目眩。 -
我也相信现有的库已经足够支持你的查询类型了。
-
嗯,谢谢提醒。
-
你签出
PhraseQuery了吗? stackoverflow.com/questions/5527868/… -
还没有。我想我需要看看它。