Elasticsearch - фильтрация в области соответствия - PullRequest
0 голосов
/ 29 сентября 2018

в Elasticsearch У меня есть пять документов.У них есть имя и цвета:

  • имя: автомобиль 1, цвета: синий, зеленый
  • имя: автомобиль 2, цвета: красный, желтый
  • имя: автомобиль3, цвета: коричневый, золотой
  • имя: велосипед 1, цвета: синий, желтый
  • название: велосипед 2, цвета: красный, зеленый

хочуна поиск по имени и в пределах области поиска найденных результатов. Я хочу отфильтровать его по цвету:

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

Но этот запрос возвращает мне Car 2 иBike 2 из-за их цвета.Я понимаю, почему (фильтр решает включить их в зависимости от цвета), но понятия не имею, как написать, что то, что будет включено, основано на совпадении, и в рамках этих сопоставленных результатов я хочу отфильтровать те без правильного цвета.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...