问题
I am trying to filter the documents using terms filter. I am not sure how to introduce wildcards in filter. I tried something like this:
"filter":{
"bool":{
"must":{
"terms":{
"wildcard" : {
"aircraft":[
"a380*"
]
}
}
}
}
}
But I get SearchParseException with this. Is there no way to use wildcard within filter framework?
回答1:
The terms
filter doesn't support wildcards, queries do, though. Try this query instead
{
"query": {
"bool": {
"must": {
"wildcard": {
"aircraft": "a380*"
}
}
}
}
}
Or if you absolutely need to use filters, you can try the regexp filter, too:
{
"query": {
"filtered": {
"filter": {
"bool": {
"must": {
"regexp": {
"aircraft": "a380.*"
}
}
}
}
}
}
}
来源:https://stackoverflow.com/questions/30473653/elastic-query-dsl-wildcards-in-terms-filter