繁体   English   中英

elasticsearch范围和项过滤器

[英]elasticsearch range and term filter

我正在尝试在Elastic 2.X中创建过滤的索引别名

以下是所有性别的青少年。 我只想在此过滤器中看到女性。

这就是我要创建索引别名的内容:

"add" : {
        "index" : "myindex",
        "alias" : "teenage_female",
        "filter" : 
        {
            "bool" : 
            {
                "must" : 
                [               
                    { "term": { "gender": "female" } },
                    { "range": { "age": { "gt": "12", "lt": "20" } } }
                ]
            }
        }
    }
}

我看了看这个问题,似乎是相同的答案,但是我的JSON中肯定有问题。

Elasticsearch将范围和术语连接到同一数组项

过滤器不能是数组,除非将其包装在带有“必须”的“布尔”中。

以下过滤器可以正常工作:

  "filter" : 
  {
    "bool" : 
    {
      "must" : 
      [
        { "term": { "gender": "female" } },
        { "range": { "age": { "gt": "12", "lt": "20" } } }
      ]
    }
  }

我在这里有点猜测,但是根据过滤索引别名文档,添加别名请求适用于过滤器上下文 (而不是查询上下文)

尝试这个:

"add" : {
    "index" : "myindex",
    "alias" : "teenage_female",
    "filter" : [               
         { "term": { "gender": "female" } },
         { "range": { "age": { "gt": "12", "lt": "20" } } }
     ]
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM