我正在尝试使用术语过滤器来过滤文档。我不确定如何在过滤器中引入通配符。我尝试了这样的东西:
"filter":{
"bool":{
"must":{
"terms":{
"wildcard" : {
"aircraft":[
"a380*"
]
}
}
}
}
}但是我用这个得到了SearchParseException。有没有办法在过滤器框架中使用通配符?
发布于 2015-05-27 13:16:46
terms过滤器不支持通配符,但是查询支持。请改为尝试此查询
{
"query": {
"bool": {
"must": {
"wildcard": {
"aircraft": "a380*"
}
}
}
}
}或者,如果您确实需要使用过滤器,也可以尝试使用regexp过滤器:
{
"query": {
"filtered": {
"filter": {
"bool": {
"must": {
"regexp": {
"aircraft": "a380.*"
}
}
}
}
}
}
}更新
在最新的ES版本中,请改用以下查询,因为filtered已被删除:
{
"query": {
"bool": {
"filter": {
"regexp": {
"aircraft": "a380.*"
}
}
}
}
}https://stackoverflow.com/questions/30473653
复制相似问题