创建索引:
def create_index(index_name):
es=create_elastic_search_object()
entry_mapping = {
'entry-type': {
'properties': {
'text': {'type': 'string'},
'coordinates': {'type': 'geo_point'},
'username':{'type': 'string'} }
}
}
es.indices.create(index_name,body={'mappings':entry_mapping})
插入索引
coordinates= str(tweet[0][0])+","+str(tweet[0][1])
es.index(index=index_name, doc_type=keyword, id=start_id+ind, body={'text': tweet[1],'coordinates': coordinates,'username': tweet[2]})
错误:
*** RequestError: TransportError(400, u'mapper_parsing_exception', u'failed to parse')
调试:
(Pdb) body={'text': tweet[1],'coordinates': coordinates,'username': tweet[2]}
(Pdb) print body
{'username': 'csd', 'text': 'RT @funder: Court Doc:Trump evicted a disabled US Veteran because he had a therapy dog\n\n@votevets #trumprussia #resist #theresistance #russ...', 'coordinates': '-117.1304909,32.7211149'}
所有格式对我来说都是正确的,我缺少什么?
使用的图书馆:
from elasticsearch import Elasticsearch
答案 0 :(得分:1)
当我遇到同样的问题时,在我的情况下,我的dict中有NULL值,所以只需检查你的数据或尝试在读取之前将值转换为str。