ElasticSearch。优先级不起作用

时间:2018-02-14 14:55:42

标签: elasticsearch

当我使用cross_fields搜索时,我得到了错误的结果 当我发送此查询时

{'from': 0, 
 'sort': ['_score'],
 'size': 400,
 'query': {
       'bool': 
           {'must': 
               {'multi_match': 
                   {'type': 'cross_fields', 
                    'fields': ['nickname^1', 'pedigree_name^0.4', 'breed^0.2', 'city^0.1', 'country^0.05'],
                    'operator': 'and',
                    'query': 'Akita'}
               }
           }
   }
}

我得到了这个结果 enter image description here

但为什么呢? Pedigree_name优先级高于品种优先级

1 个答案:

答案 0 :(得分:0)

我认为原因是您的查询类型是“交叉字段”。它将查询字符串分析为单个术语,然后在任何字段中查找每个术语,就好像它们是一个大字段一样。"进一步的here

  

请注意,cross_fields通常仅对短字符串字段有用   所有都有提升1.否则提升,术语频率和长度   归一化有助于以混合的方式得分   术语统计数据不再有意义。