Elasticsearch-匹配范围内的过滤

时间:2018-09-29 06:13:20

标签: elasticsearch

在Elasticsearch中,我有五个文档。它们具有名称和颜色:

  • 名称:汽车1,颜色:蓝色,绿色
  • 名称:汽车2,颜色:红色,黄色
  • 名称:汽车3,颜色:棕色,金色
  • 名称:Bike 1,颜色:蓝色,黄色
  • 名称:Bike 2,颜色:红色,绿色

我想通过名称进行搜索,并在查找结果的范围内进行搜索,我想按颜色过滤

{
  "query": {
    "bool": {
      "should": [
        {
          "match": {
            "name": {
              "query":"Car"
            }
          }
        }
      ],
      "filter": {
        "term": {
          "colors": "red"
        }
      }
    }
  }
}

但是此查询返回我Car 2Bike 2,因为它们是彩色的。我知道为什么(过滤器决定基于颜色将其包括在内),但不知道如何写出将包含的内容基于匹配项,并且在那些匹配的结果中,我想过滤出没有正确颜色的那些。< / p>

谢谢

0 个答案:

没有答案