当我使用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'}
}
}
}
}
但为什么呢? Pedigree_name优先级高于品种优先级
答案 0 :(得分:0)
我认为原因是您的查询类型是“交叉字段”。它将查询字符串分析为单个术语,然后在任何字段中查找每个术语,就好像它们是一个大字段一样。"进一步的here:
请注意,cross_fields通常仅对短字符串字段有用 所有都有提升1.否则提升,术语频率和长度 归一化有助于以混合的方式得分 术语统计数据不再有意义。