Elasticsearch multi должен запрашивать с multiimum_should_match - PullRequest
1 голос
/ 24 января 2020

Мне нужно решить проблему с СЛЕДУЮЩИМИ условиями, которые делают группы, и эти группы должны оцениваться отдельно в соответствии с минимальным количеством совпадений. Таким образом, не только одна группа с условием следует, но более отдельные группы условий должны.

Представьте себе такие условия, как A1, A2, A3 и B1 B2 B3. Простой запрос должен выглядеть так:

{
   "query": {
      "bool": {
         "should": [
            { A1 },
            { A2 },
            { A3 },
            { B1 },
            { B2 },
            { B3 },
         ],
         "minimum_should_match" : 1
      }
   }
}

НО мне нужно оценивать minimal_should_match для каждой группы. Один для группы А и второй для группы В. Что-то вроде (это идея, а не действительный код):

{
   "query": {
      "bool": {
         "should": [
            { A1 },
            { A2 },
            { A3 },
         ],
         "minimum_should_match" : 1,
         "should": [
            { B1 },
            { B2 },
            { B3 },
         ],
         "minimum_should_match" : 1
      }
   }
}

Как вы видите, мне нужен результат bool для каждой из групп следует иметь значение ИСТИНА. Возможно ли это сделать в ElasticSearch 6? Спасибо.

1 Ответ

1 голос
/ 24 января 2020

Я бы разделил два блока как случаи логического запроса must.

{
   "query": {
      "bool": {
         "must: [
             {
                "bool": {
                    "should": [
                        { A1 },
                        { A2 },
                        { A3 },
                    ],
                    "minimum_should_match" : 1
                }
             },
             {
                "bool": {
                    "should": [
                        { B1 },
                        { B2 },
                        { B3 },
                    ],
                    "minimum_should_match" : 1
                }
             }
         ]
      }
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...