gpt4 book ai didi

Elasticsearch 如何使用带通配符的 multi_match

转载 作者:行者123 更新时间:2023-11-29 02:42:58 30 4
gpt4 key购买 nike

我有一个具有名称和姓氏属性的用户对象。我想使用一个查询来搜索这些字段,并且在文档中找到了 multi_match,但我不知道如何将其与通配符一起正确使用。是否可以?

我尝试使用 multi_match 查询,但没有成功:

{
"query": {
"multi_match": {
"query": "*mar*",
"fields": [
"user.name",
"user.surname"
]
}
}
}

最佳答案

或者,您可以使用带通配符的 query_string 查询。

"query": {
"query_string": {
"query": "*mar*",
"fields": ["user.name", "user.surname"]
}
}

这比在索引时使用 nGram 过滤器要慢(请参阅我的其他答案),但是如果您正在寻找一种快速而肮脏的解决方案...

此外,我不确定您的映射,但如果您使用的是 user.name 而不是 name,则您的映射需要如下所示:

"your_type_name_here": {
"properties": {
"user": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"surname": {
"type": "string"
}
}
}
}
}

关于Elasticsearch 如何使用带通配符的 multi_match,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16933800/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com