Scrapy для эластичного поиска оптового импорта? - PullRequest
0 голосов
/ 24 июня 2018

Я пытаюсь вывести некоторые данные в формат массового импорта эластичного поиска.Для этого требуются две линии JL, например:

{"index": {"_type": "media", "_id": "https://macaulaylibrary.org/asset/75247", "_index": "audiomnia_dev"}}
{"description": "Macaulay Library ML75247; aracari sp.; Pteroglossus sp.; \u00a9\u00a0Curtis Marantz; Lago Sachavacaya Trail, right bank Rio Tambopata, Madre de Dios, Peru; 23 Aug 1994", "creator": "Curtis Marantz", "url": "https://macaulaylibrary.org/asset/75247", "image": "https://macaulaylibrary.org/media/Spectrograms/audio/image/320/0/75/75247.jpg", "commonName": "aracari sp.", "fileFormat": "audio", "sciName": "Pteroglossus sp.", "dateCreated": "1994-08-23T08:13:00", "geo": {"lat": "-12.9", "lon": "-69.3667"}, "contentLocation": "Lago Sachavacaya Trail, right bank Rio Tambopata, Madre de Dios, Peru", "name": "ML75247 aracari sp. Macaulay Library"}

Есть ли способ сделать это надежно в Scrapy?У меня было следующее, но условия гонки произошли, и в некоторых случаях это испортило порядок строк, что привело к тому, что массовый API Elasticsearch прервался:

yield { "index" : {
    "_index" : "audiomnia_dev",
    "_type" : "media",
    "_id" : json_ld["url"] }
}
yield json_ld

Как правильно убедиться, что две строкиjl вместе, все еще следуя образцу генератора / выхода?

1 Ответ

0 голосов
/ 25 июня 2018

Сделайте так, чтобы паук выдал один объект со всеми соответствующими данными, и напишите пользовательский экспортер элементов , чтобы правильно отформатировать его дляasticsearch.

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