Elasticsearch: документ не добавляется в индекс с настраиваемым отображением - PullRequest
1 голос
/ 10 октября 2019

Я сканирую сайты, используя Scrapy. Я хочу сохранить данные каждого сканирования непосредственно в Elasticsearch. Мне удалось найти конвейер, написанный только для этого: https://github.com/jayzeng/scrapy-elasticsearch/blob/master/scrapyelasticsearch/scrapyelasticsearch.py Elasticsearch применяет настраиваемое сопоставление к полям, если не указано иное. Я создал индекс на своем локальном хосте с пользовательским отображением (код прилагается ниже). Индекс успешно создан, и сопоставление также применяется. Теперь, когда я пытаюсь сохранить данные в этом конкретном индексе, к нему не добавляется документ. Однако если я укажу индекс, который не был создан с помощью пользовательского сопоставления, в него будут добавлены документы.

Код для пользовательского сопоставления:

from elasticsearch import Elasticsearch
es = Elasticsearch() 

mapping = {
     "mappings": { 
     "properties": { 
        "name": { 
           "type":  "text" 
       }, 
       "last_updated": { 
          "type": "text" 
       }
}}}

es.indices.create(index='my-index', ignore=400, body=mapping)

1 Ответ

0 голосов
/ 11 октября 2019

Проработав пару часов, я наконец понял, в чем проблема. Элемент, который я индексировал, был пользовательским объектом, который я создал, и поэтому по умолчанию сериализуем * JSON NOT . Я просто вписываю это в dict, и оно работает как шарм.

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