elasticsearch - 难于对Elasticsearch批量导入?

标签 elasticsearch scrapy

我正在尝试将某些数据输出为elasticsearch批量导入格式。这需要两行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中可靠地做到这一点?我有以下内容,但是发生了竞争情况,在某些情况下,它弄乱了行的顺序,这导致Elasticsearch批量API阻塞了:
yield { "index" : {
    "_index" : "audiomnia_dev",
    "_type" : "media",
    "_id" : json_ld["url"] }
}
yield json_ld

在保持jl的两行同时仍然遵循generator / yield模式的正确方法是什么?

最佳答案

让Spider产生包含所有相关数据的单个对象,然后编写自定义item exporter对其进行正确格式以进行Elasticsearch。

关于elasticsearch - 难于对Elasticsearch批量导入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51011099/

相关文章:

python - Scrapy : getting only td elements with ALIGN=RIGHT

elasticsearch - 在为大型数据建立索引时,如果我再次删除索引ElasticSearch并创建索引并为文档建立索引而不是给Index不存在

当jpa创建实体时,使用JPA对elasticsearch进行 hibernate 搜索无法自动创建索引

elasticsearch - 按数组中的出现次数进行计数和排序

python - 使用多个链接之间的特定链接时,脚本会引发错误

python - 异常。类型错误 : 'str' object is not callable

java - 尝试使用 Java High Level REST Client 查询 Long 类型时出现问题

amazon-web-services - 当搜索查询返回超过 10000 个文档时,如何在 Elasticsearch 中跳转到最后一页

python - 下载文件时 Scrapy i/o block

python xpath 如何在我的xpath中添加特殊字符?