1

我将各种文章存储在我的 lucene 索引中。当用户搜索包含特定术语或短语的文章时,我需要显示所有文章(可能在 1000 到 10000 篇文章之间),但最新文章“冒泡”在搜索结果中。

我相信您可以使用“日期字段提升”在 Lucene 中冒泡搜索结果。有人可以告诉我如何去做吗?

提前致谢!

4

2 回答 2

3

我会实现SortComparatorSource 接口。您应该编写一个新的ScoreDocComparator,它的 compare() 函数比较两个日期。然后,您将需要使用新的排序器对搜索进行排序。这个建议取自Lucene in Action的第 6 章。

于 2009-01-06T16:14:34.543 回答
1

您可以使用setBoost方法在索引时为索引中的特定文档设置“提升”。由于默认的 boost 值为 1.0,因此设置小于 1.0 的值将使文档在搜索结果中“相关性降低”。通过将文档的提升值与其年龄相关联(文档越旧,提升越低),您可以使更新的内容在搜索结果中看起来更相关。

请注意,setBoost在索引时设置的 boost 值不适用于检索到的文档(boost 有效,您只是无法在检索时读回该值以查看您是否在索引时应用了正确的值)。

于 2009-02-07T00:57:13.517 回答