编辑: 我给的不好的例子。我的用例实际上是汉字,即“我我我我我我我我我我”中的短语匹配“我我”。因此,对于那些不熟悉中文搜索引擎的人来说,问题实际上是在“ b b b b b b b b b b b b b”中搜索“ b b”,而不是在“ bbbbbbbbbb”中搜索“ bb”。 我还编辑了标题以避免混淆。
奖金问题:如果使用“短语匹配前缀”代替“ max_expansions = 4”,出现频率是多少?
原始帖子: 假设搜索关键字为“ bb”,文档为“ bbbbbbbbbb”(10个b)。类型被分析,假设“ b”是被索引的“原子”。
我想象文档在内部以如下形式表示:{'b':[0,1,2,3,4,5,6,7,8,9],元数据:{...}}数字是术语“ b”的位置。如果我错了,请纠正我。
根据弹性导引,项频率tf(t in d)= sqrt(频率)。 (https://www.elastic.co/guide/en/elasticsearch/guide/current/scoring-theory.html#tf) 因此,如果将“ bb”与词组中的“ b”相匹配的短语 ,频率是5还是9?
答案 0 :(得分:0)
使用“标准分析仪”时,“ bbbbbbbbb”将被分析为“ 0:bbbbbbbbb”,而不是{{b':[0,1,2,3,4,5,6,7,8,9 ]。并且搜索“ bb”没有任何结果。如果docs中的短语类似于“ b b b b b b b b b b b”,则{'b':[0,1,2,3,4,5,6,7,8]是正确的。但是如果您再次搜索“ bb”,将不会有任何结果。 但是如果您搜索“ b b”之类的内容,它将分析为“ b”或“ b”,并且文档中的频率为9(可能是9 + 9/2)。
使用此API,您可以查看如何计算分数:
获取/ my_index / doc / _search?解释
有关得分的更多信息:
https://www.elastic.co/guide/en/elasticsearch/guide/current/scoring-theory.html