本节书摘来华章计算机《深入理解Elasticsearch(原书第2版)》一书中的第2章 ,第2.1.3节,[美]拉斐尔·酷奇(Rafal Ku) 马雷克·罗戈任斯基(Marek Rogoziski)著 张世武 余洪淼 商旦 译 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
2.1.3 Elasticsearch如何看评分
总而言之,Elasticsearch使用了Lucene的评分功能,幸运的是Elasticsearch允许我们挑选可用的similarity类实现,或者自定义similarity类,来替换默认的评分算法。不过请记住,Elasticsearch不仅仅是Lucene的简单封装,因为它虽然使用了Lucene的评分功能,但不仅限于Lucene的评分功能。
用户可以使用各种不同的查询类型,以精确控制文档评分的计算。例如使用function_score查询时,可以通过使用脚本(scripting)来改变文档得分,也可以使用Elasticsearch 0.90中出现的二次评分功能,通过在返回文档集之上执行另外一个查询,重新计算top-N文档的得分。
想了解更多Apache Lucene查询类型,请参考http://lucene.apache.org/core/4_9_0/queries/org/apache/lucene/queries/package-summary.html上的相关文档。