elastic search搜索学习打分算法简单总结

之前也在es官网走马观花的看了一些es搜索方面的内容,发现自己之前对es的打分规则理解的很浅,最近又从阿里的《elastic stack实战手册》看了看,发现总算对es搜索的打分规则有了一些更深入的了解,在此做个简单的总结!

影响搜索结果得分的两个关键因素:tf(t in d)*idf(t)
1、词频TF:tf(t in d), text in docment,即搜索的当前词条在这个文档中出现的次数的平方根;
2、逆向文档频率 idf(t):  idf(t) = 1 + log ( numDocs / (docFreq + 1)) ,当前索引中的文档(docment)数量除以存在该词条(text)的文档的对数;
由此可知在其他变量(如权重值)均一致的情况下,词频越高,且包含该关键词的文档数越少,则得分越高;

例如:现在有一个文档数量为100000个mobile索引,包含关键词"苹果"的文档数量为1000个,其中有一个ID为300的文档中关键词"苹果"出现了4次,则当搜索关键词为"苹果"且索引为mobile时,文档ID为300的这个文档的得分则为2*(1/1000)2*n;
附:Lucene实用打分函数 链接:https://www.elastic.co/guide/cn/elasticsearch/guide/current/practical-scoring-function.html
参考链接:https://elasticstack.blog.csdn.net/article/details/125286477?spm=1001.2014.3001.5502

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐