gpt4 book ai didi

elasticsearch - 禁用对Elasticsearch multi_match查询的分析

转载 作者:行者123 更新时间:2023-12-03 01:58:12 25 4
gpt4 key购买 nike

我的索引使用以下映射:

"mappings": {
"user": {
"properties": {
"address": {
"properties": {
"number": {
"type": "string"
},
"street": {
"type": "string"
}
}
}
}
}
}

我正在使用以下查询
{
"query": {
"bool": {
"should": [
{
"multi_match": {
"query": "mystreet 5",
"fields": "address.*"
}
}
]
}
}
}

这将返回 address.street等于 mystreetaddress.number等于 5的所有对象,因为已分析了multi_match查询。

但是,我宁愿搜索确切的字符串。所以我想禁用查询分析器。基本上,我需要一个查询多个字段 termaddress.*查询。

这可能吗?

最佳答案

您可以像这样在phrase查询中指定multi_match类型来实现此目的

{
"query": {
"bool": {
"should": [
{
"multi_match": {
"query": "mystreet 5",
"fields": "address.*",
"type": "phrase"
}
}
]
}
}
}

这将匹配 lincoln mystreet 5,但不会提供 lincoln mystreetsome street 5

如果您要查找完全匹配的字段,例如mystreet 5不应与JFK mystreet 5匹配,则可以使用 multi-fields并对每个字段进行两次分析,一个使用 standard analyzer,另一个使用 keyword analyzer

希望这可以帮助!

关于elasticsearch - 禁用对Elasticsearch multi_match查询的分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35093541/

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