我尝试进行精确的位置搜索,这意味着该位置中的每个字词都应与至少一个位置字段完全匹配。例如,如果我搜索"萨德伯里,米德尔塞克斯,马萨诸塞州"那么我想只获得与这三个术语中的每个术语完全匹配的结果。 location.city.name = Sudbury,location.county.name = Middlesex和location.region.name = Massachusetts的结果将匹配。
{
"multi_match": {
"fields": [
"location.city.name",
"location.region.name",
"location.county.name",
"location.country.name"
],
"query": "Sudbury, Middlesex, Massachusetts",
"type": "cross_fields",
"operator": "and"
}
这非常接近,但我也得到了东萨德伯里的结果。"我不想要东萨德伯里,我只想要与赛场完全匹配的结果。我怎样才能做到这一点?我知道"键入":"短语"是错的,因为它会搜索整个短语" Sudbury,Middlesex,Massachusetts"在每个领域都没有结果。
答案 0 :(得分:0)
听起来像正在分析字段location.city.name并将'East Sudbury'拆分为'East'和'Sudbury'并返回搜索'Sudbury'
如果您一直在搜索特定字词,请尝试将字段设置为not_analyzed?