Простой запрос (A ИЛИ B) И (C ИЛИ D) - PullRequest
0 голосов
/ 31 марта 2020

Я хочу сделать простой запрос сasticsearch:

(A ИЛИ B) И (C ИЛИ D)

Я пишу запрос, который не не работает Только часть C ИЛИ D возвращает результаты.

{
  "query": {
    "bool": {
      "must": [
        {
          "bool": {
            "minimum_should_match": 1,
            "should": [
              {
                "match": {
                  A
                }
              },
              {
                "match": {
                  B
                }
              }
            ]
          }
        },
        {
          "bool": {
            "minimum_should_match": 1,
            "should": [
              {
                "match": {
                  C
                }
              },
              {
                "match": {
                  D
                }
              }
            ]
          }
        }
      ]
    }
  }
}

Есть ли ошибка в моем запросе?

Редактировать всегда солнечно. A И (B ИЛИ C)

{
  "query": {
    "constant_score": {
      "filter": {
        "bool": {
          "should": [
            {
              "match": {
                C
              }
            },
            {
              "match": {
                B
              }
            }

          ],
          "must": {
            "match": {
              A
            }
          }
        }
      }
    }
  }
}

Запрос возвращает только B ИЛИ C и никогда A. Я что-то пропустил?

1 Ответ

0 голосов
/ 31 марта 2020

Благодаря Always Sunny! Работает после перезапускаasticsearch

...