我正在使用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)
答案 0 :(得分:0)
研究了几个小时后,我终于意识到问题出在哪里。我正在索引的项目是我创建的自定义对象,因此默认情况下不 JSON可序列化。我只是将其转换为dict
,它的工作就像一个魅力。