跨多个字段的模糊性 -- 仅在某些字段上使用模糊性



有没有办法只对某些列使用模糊性进行cross_field搜索?例如:

match against:
- name (fuzziness=1)
- country (fuzziness=0)
因此,搜索"John USA"将匹配,搜索">

Jon USA"将匹配,但搜索"John AUS"不会匹配。这将如何完成?

正如文档中所写和 Val 在上面的评论中所说,"模糊性参数不能与cross_fields类型一起使用"。

根据我在这里和这里读到的内容。对于您描述的问题,我将使用 AUTO 值作为模糊属性。同样,我会超越这一点,并指定"名称"列应该比国家/地区列更具相关性,因为您更有可能匹配名称而不是国家/地区(由于您为输入而提供的结构(。

{
"size": 100,
"query": {
"multi_match": {
"query": "John Doe USA",
"fields": [
"name^3",
"country"
],
"fuzziness": "AUTO",
"max_expansions": 50,
"prefix_length": 0
}
}
}

希望这有帮助!

最新更新