居然是你

官方文档说索引时存储IDF,但IDF是根据文档总量得出来的,后面是需要不断更新这个值吗

Elasticsearch | 作者 stephen_qu | 发布于2019年12月25日 | 阅读数:1432

Q1:
文档中说:


以下三个因素——词频(term frequency)、逆向文档频率(inverse document frequency)和字段长度归一值(field-length norm)——是在索引时计算并存储的。最后将它们结合在一起计算单个词在特定文档中的 权重 。


但是IDF是根据索引中文档数量去计算的,那随着索引中的文档数量增减,这个数值要不断变化吗?
 
Q2:


设想如果查询 “happy hippopotamus” ,常见词 happy 的权重较低,不常见词 hippopotamus 权重较高,假设 happy 的权重是 2 , hippopotamus 的权重是 5 ,可以将这个二维向量—— [2,5] ——在坐标系下作条直线,线的起点是 (0,0) 终点是 (2,5)


这个2,5是根据TF-IDF计算出来的吗?那每个文档的“happy”,“hippopotamus”对应的 权重应该都是不同的吧?这里只是为了演示吧?
https://www.elastic.co/guide/c ... -docs
es2.jpg
已邀请:

stephen_qu - 多学,多动手,少说废话

赞同来自:

有没有比较详细,完整介绍TF-IDF的中文博客或者资料推荐下。最好结合es5.0以上版本的

trycatchfinal

赞同来自:

Q1:
elasticsearch的每个分片是由segment组成的。索引文档,会生成新的segment;删除文档,会记录在del文件中。
segment文件都是不可变的。IDF计算设计的文档数,应该会分别获取segment的文档数求和。
 
 

要回复问题请先登录注册