Эластичный поиск не позволяет получить все документы в коде Python - PullRequest
1 голос
/ 09 июня 2019

У меня есть упругий поиск кластера с одним узлом, и у него есть некоторый индекс. Индекс содержит 6000 или более документов. В отображении документов много полей, например (30 или более). Я могу запросить все дублирующиеся записи в (инструмент разработчика Kibana) но я запрашиваю результат Python, как 10 записей или 20 записей. В чем причина?

мой индекс и количество документов

yellow open   test_index kjioInpQRAqT3o1LZHI92g   1   2       7652         1267      20.7mb          20.7mb

мое отображение

{
 "settings": {
  "number_of_shards": 1,
  "number_of_replicas": 2 
 },

 "mappings": {
  "test_index" : {
    "properties": {
        "name": {
            "type": "keyword"
        },
        "address": {
            "type": "keyword"
        },
        # MORE 35 FIELDS ....
        }
      }
   }
}

1 Ответ

0 голосов
/ 09 июня 2019

Я нашел причину. В документе много полей. В нем 35 полей. Я могу запросить инструмент (kibana dev). Запрос возвратил 1000 документов за один раз. Библиотека эластичного поиска Python не может получить это количество причин документаявляется ли один документ слишком большим (в документе 35 полей). Затем я изменяю запрос и помещаю полезные поля для результата запроса. Теперь это рабочий файл.

Измените свой запрос следующим образом (обычный запрос)

`{
   "_source": ["_id","_index", "quote_date", "asset"],
   "query": {
       "match_all": {
       }
   }
}`

Измените ваш запрос следующим образом (запрос агрегации)

` "aggs": {        
  "duplicateDocuments": {        
     "top_hits": {
        "_source": ["_id","_index", "name", "address"],
                    "sort": [{"create_at": { "order": "desc"} } ]                                                                                                                                
                }
            }
   }`
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...