我正在尝试进行精确的位置搜索,这意味着该位置中的每个术语都应该与至少一个位置字段完全匹配。例如,如果我搜索“萨德伯里,米德尔塞克斯,马萨诸塞州”,那么我只想获得与这三个术语中的每一个都完全匹配的结果。location.city.name = Sudbury、location.county.name = Middlesex 和 location.region.name = 马萨诸塞州的结果将匹配。
{
"multi_match": {
"fields": [
"location.city.name",
"location.region.name",
"location.county.name",
"location.country.name"
],
"query": "Sudbury, Middlesex, Massachusetts",
"type": "cross_fields",
"operator": "and"
}
这非常接近,但我也得到了“东萨德伯里”的结果。我不想要东萨德伯里,我只想要与该领域完全匹配的结果。我怎样才能做到这一点?我知道 "type":"phrase" 是错误的,因为它会在每个字段中搜索整个短语 "Sudbury, Middlesex, Massachusetts" 并且不会得到任何结果。