gpt4 book ai didi

elasticsearch - 弹性查询 DSL : Wildcards in terms filter?

转载 作者:行者123 更新时间:2023-11-29 02:43:55 26 4
gpt4 key购买 nike

我正在尝试使用术语过滤器来过滤文档。我不确定如何在过滤器中引入通配符。我试过这样的事情:

"filter":{
"bool":{
"must":{
"terms":{
"wildcard" : {
"aircraft":[
"a380*"
]
}
}
}
}
}

但是我得到了 SearchParseException。有没有办法在过滤器框架内使用通配符?

最佳答案

terms 过滤器不支持通配符,但查询支持。改用这个查询

{
"query": {
"bool": {
"must": {
"wildcard": {
"aircraft": "a380*"
}
}
}
}
}

或者如果你绝对需要使用过滤器,你可以试试 regexp也过滤:

{
"query": {
"filtered": {
"filter": {
"bool": {
"must": {
"regexp": {
"aircraft": "a380.*"
}
}
}
}
}
}
}

更新:

在最新的 ES 版本中,使用以下查询代替,因为 filtered 已被删除:

{
"query": {
"bool": {
"filter": {
"regexp": {
"aircraft": "a380.*"
}
}
}
}
}

关于elasticsearch - 弹性查询 DSL : Wildcards in terms filter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30473653/

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