gpt4 book ai didi

elasticsearch - Elasticsearch 通配符查询无法通过文本查询工作

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

我有一个查询,其中在过滤器上使用通配符可返回结果,但在结果中使用实际文本执行查询将返回0个匹配。

这有效

{
"query": {
"filtered": {
"query": { "match_all": { } },

"filter": {
"nested": {
"path": "houses",
"query": {
"filtered": {
"query": { "match_all": { } },

"filter": {
"wildcard": {
"houses.name": "????"
}
}

}
}
}
}
}
}
}

如果返回名为“夏娃花园”的房屋,则不返回任何内容。
    {
"query": {
"filtered": {
"query": { "match_all": { } },

"filter": {
"nested": {
"path": "houses",
"query": {
"filtered": {
"query": { "match_all": { } },

"filter": {
"wildcard": {
"houses.name": "Eve gardens"
}
}

}
}
}
}
}
}
}

请帮忙!

最佳答案

参见this:

根据您的查询,houses.name似乎是analyzed字符串,这意味着Eve gardens将被标记化并存储为evegardens而不是整个Eve gardens。根据文档

The wildcard query operates on terms. If you use them to query an analyzed field, they will examine each term in the field, not the field as a whole.



所以如果你这样做
"wildcard": {"houses.name": "Eve gardens"}

这是行不通的。

尝试
"wildcard": {"houses.name": "eve*"}

它应该获取您的结果。希望这可以帮助..

关于elasticsearch - Elasticsearch 通配符查询无法通过文本查询工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38005527/

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