Как заставить ES возвращать документ для ключа, которого нет в запросе - PullRequest
0 голосов
/ 23 апреля 2019

Я пишу API для агрегирования некоторых данных в Elasticsearch, один из них считает документы.Я использую фильтр terms и агрегации terms с большим количеством идентификаторов, чтобы получить их.Проблема в том, что Elasticsearch, похоже, не возвращает контейнер с термином, которого нет в запросе выше.Есть ли какой-нибудь простой и эффективный способ сделать это?

Я пытался следовать этому , и это вроде как решает проблему, но он не оптимизирован с использованием большого количества терминов запроса.Мой API должен запрашивать как минимум 50 идентификаторов, и использование такого большого количества запросов term не очень хорошая идея

Например, я использовал это для агрегирования данных:

{
    "size": 0,
    "aggs":{
      "matching_values_field1": {
         "filter": { 
            "terms" : { "myfield" : ["1", "2", "3","100"]}
         },
         "aggs": {
            "myfield" : {
                "terms" : { 
                    "field" : "myfield",
                    "min_doc_count": 0
                }                
            }
         }
      }
   }    
}

и ответ просто вернуть не включил 100 ведро

{
  "aggregations": {
      "matching_values_1": {
         "doc_count": 11,
         "myfield": {
            "doc_count_error_upper_bound": 0,
            "sum_other_doc_count": 0,
            "buckets": [
               {
                  "key": 2,
                  "doc_count": 6
               },
               {
                  "key": 1,
                  "doc_count": 3
               },
               {
                  "key": 3,
                  "doc_count": 2
               },
               {
                  "key": 0,
                  "doc_count": 0
               },
               {
                  "key": 0.5,
                  "doc_count": 0
               },
               {
                  "key": 4,
                  "doc_count": 0
               },
               {
                  "key": 5,
                  "doc_count": 0
               },
               {
                  "key": 6,
                  "doc_count": 0
               },
               {
                  "key": 14,
                  "doc_count": 0
               }
            ]
         }
      }
   }
}

Спасибо за вашу помощь!

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