我正在尝试使用术语过滤器过滤文档。我不确定如何在过滤器中引入通配符。我尝试过这样的事情:
"filter":{ "bool":{ "must":{ "terms":{ "wildcard" : { "aircraft":[ "a380*" ] } } } } }
但是我得到了SearchParseException。没有办法在过滤器框架内使用通配符?
该terms过滤器不支持通配符,查询做,虽然。试试这个查询
terms
{ "query": { "bool": { "must": { "wildcard": { "aircraft": "a380*" } } } } }
或者,如果您绝对需要使用过滤器,也可以尝试使用过滤regexp器:
regexp
{ "query": { "filtered": { "filter": { "bool": { "must": { "regexp": { "aircraft": "a380.*" } } } } } } }
更新 :
在最新的ES版本中,由于filtered已删除,因此请使用以下查询:
filtered
{ "query": { "bool": { "filter": { "regexp": { "aircraft": "a380.*" } } } } }