Elastic search DSL:用通配符过滤吗?

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

"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.*"

}

}

}

}

}

以上是 Elastic search DSL:用通配符过滤吗? 的全部内容, 来源链接: utcz.com/qa/412609.html

回到顶部