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