我需要知道一个或多个单词何时位于索引中的字段内,并让该文档获得更高的分数。
我的问题是,如果我搜索“Sherton Hotel”,我会得到最好的结果
- 佩蒂特酒店
- 疯狂的牛
- 西蒙斯
我希望这些能够取得最好的结果
- 靠近月球的毛伊岛喜来登酒店
- 一家看起来像喜来登的梦幻酒店
我希望如果“我正在搜索”或类似的词在里面,在本例中,“hotelName”字段中,除了字段文本的长度之外,它们还有更高的分数。
我认为对于 Lucene, “Seraton Hotel”与“Crazy Cow”的相似度比“A Wonderful hotel, like Sheraton”的相似度更高。
最佳答案
TermQuery
查找精确匹配,FuzzyQuery
的做法略有不同。在不知道 hotelNameToSearch
和 hotel.getName().toLowerCase
是什么的情况下,我无法真正说出发生了什么,但为什么不使用内置的 queryParser?只需添加带有数值的波形符 (~) 即可表示模糊查询?
关于java - Lucene 搜索 - 如果字段中包含单词或类似内容,则得分更高,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3531491/