我正在我的lucene索引中存储各种文章。 当用户搜索包含特定术语或短语的文章时,我需要显示所有文章(可能是1000到10000篇文章之间的任何文章),但搜索结果中有最新文章“冒泡”。
我相信你可以使用“Date field Boosting”在Lucene中查找搜索结果。 有人可以告诉我如何解决这个问题的细节吗?
提前致谢!
答案 0 :(得分:3)
我会实施SortComparatorSource interface。您应该编写一个新的ScoreDocComparator,其compare()函数比较两个日期。然后,您需要使用新的分拣机对搜索进行排序。该建议取自Lucene in Action的第6章。
答案 1 :(得分:1)
您可以使用setBoost方法在索引时为索引中的特定文档设置“提升”。由于默认提升值为1.0,因此设置小于1.0的值将使文档在搜索结果中“不太相关”。通过将文档的提升值与其年龄相关联(较低的提升,文档获得的时间越长),您可以使更新的内容在搜索结果中更具相关性。
请注意setBoost
的文档中,索引时设置的提升值不适用于检索到的文档(提升工作,您无法在检索时读取值,看看您是否应用了正确的值索引时的价值)。