unassigned shards
typuc 回复了问题 • 3 人关注 • 3 个回复 • 4756 次浏览 • 2017-05-20 23:37
elasticsearch 倒排索引
kennywu76 回复了问题 • 2 人关注 • 1 个回复 • 6042 次浏览 • 2017-05-19 09:31
找寻TF_IDF和BM25的评分计算优化排序
jiakechong1642 发表了文章 • 1 个评论 • 5619 次浏览 • 2017-05-18 15:44
2.首先是TFIDF
使用ik_smart分词器,ES为2.3.3
文档是:分词结果是
"伟业我爱我家" 分词结果:【伟业,我,爱我,家】
"我爱我家" 【我,爱我,家】
这两个。
multi_match 匹配,query=我爱我家
排名如下
-----------------------------------------------------------
"伟业我爱我家" "_score": 6.8563557,
详细参数
"我":tf=1,idf=6.7638364,fieldNorm=0.5,queryNorm=0.07292504,
“爱我”: tf=1,idf=6.7638364,fieldNorm=0.5,queryNorm=0.07292504
“家”: tf=1,idf=6.278329,fieldNorm=0.5,queryNorm=0.07292504
----------------------------------------------------------
"我爱我家" "_score": 6.7839246,
"我":tf=1,idf=6.9336233,fieldNorm=0.5,queryNorm=0.07370365,
“爱我”: tf=1,idf=6.9336233,fieldNorm=0.5,queryNorm=0.07370365
“家”: tf=1,idf=6.9336233,fieldNorm=0.5,queryNorm=0.07370365
---------------------------------------------------------
其中queryNorm是由每个term词项的idf综合计算而来,所以在每个文档中,他都是一样的。
然后仔细比较得分,觉得每个得分都可以被推算出来
但是排序结果不符合期望:
queryNorm 官方文档也说了基本没有什么用
tf=1没什么可说
idf有些问题,比如"爱我"在这两个文档中是不同的(这是因为这两个文档在不同的分片中引起的)
那这么说来,TFIDF的得分就仅仅受tf,idf,fieldNorm控制,
而idf因为分片不均匀可能会出现一点差异,fieldNorm又犹由于精度让长度为3或者4 的文档值都为0.5
。综上:tfidf在这种量不多(200万)的短文本检索下,效果很差。
这种情况下,我该怎么优化这个排序呢(让“我爱我家”,排在"伟业我爱我家"前面呢?)
------------------BM25的详情稍后补上-------------------------
可以给节点设置权重么?
Yuna 回复了问题 • 3 人关注 • 1 个回复 • 5178 次浏览 • 2017-05-24 10:18
es对查询发起端的性能是否有要求?
Yuna 回复了问题 • 2 人关注 • 1 个回复 • 4139 次浏览 • 2017-05-24 10:21
elasticsearch定时删除旧的index内容
wuyinggui 回复了问题 • 4 人关注 • 2 个回复 • 9022 次浏览 • 2017-05-17 18:19
es2.3.1集群各节点gc情况不一致
Yuna 回复了问题 • 4 人关注 • 3 个回复 • 5959 次浏览 • 2017-05-24 09:29
elasticsearch 在 intellij idea 中调试问题,抛出 toString() 异常
回复Cyberpunk 发起了问题 • 0 人关注 • 0 个回复 • 7882 次浏览 • 2017-05-17 11:53
elasticsearch fields参数
Yuna 回复了问题 • 3 人关注 • 2 个回复 • 8749 次浏览 • 2017-05-24 10:35
5.1.1 java api event executor terminated
xiao 回复了问题 • 3 人关注 • 5 个回复 • 14957 次浏览 • 2017-09-07 17:18