关于搜索引擎搜索结果排序的一点看法:
(1) lucene 的评分机制见公式,通过 setBoost方法来改变文档的的boost因子 ,作为新文档的得分。
与搜索相关的排名机制,如:网站质量、网站活跃度、级别等 参数 综合公式计算权重加入到boost因子中。
计算出score. 这种排序方法比较理想。
(2) 根据字段对结果排序
Lucene有内置的排序用IndexSearcher.search(query,sort)但是功能并不理想。我们需要自己实现自定义的排序。
这样的话得实现两个接口: ScoreDocComparator, SortComparatorSource
(1) lucene 的评分机制见公式,通过 setBoost方法来改变文档的的boost因子 ,作为新文档的得分。
与搜索相关的排名机制,如:网站质量、网站活跃度、级别等 参数 综合公式计算权重加入到boost因子中。
计算出score. 这种排序方法比较理想。
(2) 根据字段对结果排序
Lucene有内置的排序用IndexSearcher.search(query,sort)但是功能并不理想。我们需要自己实现自定义的排序。
这样的话得实现两个接口: ScoreDocComparator, SortComparatorSource
用IndexSearcher.search(query,new Sort(new SortField(String Field,SortComparatorSource)));