Задать вопрос
@Oleg-Ukraine

Как правильно составить запрос в ElasticSearch?

Хранятся у меня в таком формате продукты в Эластике
{
            "_index": "market",
            "_type": "products",
            "_id": "4",
            "_score": 0.5619608,
            "_source": {
               "id": 4,
               "title": "Zora",
               "category_id": 3,
               "price": "35000.00",
               "characteristicValue": [
                  {
                     "id": 1,
                     "name": "Красный",
                     "characteristic": {
                        "id": 2,
                        "name": "color"
                     }
                  }
               ]
            }
         }


Мне надо сделать фильтрацию по свойствам продукта.

В частности рассматриваю по одному фильтру

"query": {
        "bool": {
            "must": [
               {"match": {
                  "characteristicValue.characteristic.name": "color"
               }}
            ],
            "should": [
               {"terms": {
                  "characteristicValue.name": [
                     "красный",
                     "синий"
                  ]
               }}
            ]
            
        }
    }


В данном запросе вываливаются все, у кого есть свойство цвет, но цвета у них не (красный или зеленый). Как исправить запрос?
  • Вопрос задан
  • 216 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • REBRAIN
    EFK (Elastic & Fluent & Kibana)
    2 недели
    Далее
  • Яндекс Практикум
    Аналитик SOC
    4 месяца
    Далее
  • Merion Academy
    Базы данных с нуля
    2 месяца
    Далее
Решения вопроса 1
@RidgeA
то, что в should переместить в must

https://www.elastic.co/guide/en/elasticsearch/refe...

If the bool query is in a query context and has a must or filter clause then a document will match the bool query even if none of the should queries match. In this case these clauses are only used to influence the score.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы