Объемные данные об ошибке транспорта Elasticsearch
Ошибка
asticsearch.exceptions.RequestError: TransportError(400, 'parse_exception', 'Не удалось проанализировать содержимое на карте')
Вот мой код:
with open("{}.txt".format(str(now.year) + str(now.month)), "r") as html:
for item in html.readlines():
jsn_item = json.loads(item)
for var in jsn_item["query"].split():
item = var.split(":")
inner_dict[item[0]] = item[1]
jsn_item["query"] = [inner_dict]
op_dict = {
"index": {
"_index":INDEX_NAME,
"_type":TYPE_NAME,
}
}
final_datas.append(op_dict)
final_datas.append(jsn_item)
settings='''
{
"settings" : {
"number_of_shards": 2,
"number_of_replicas": 0
},
"mappings": {
"doc": {
TYPE_NAME : {
"properties": {
"query": {
"properties": {
"tag": {
"type": "text",
"fields" : {
"keyword": {
"type" : "keyword",
"ignore_above": 256
}
}
},
"type": {
"type": "text",
"fields" : {
"keyword": {
"type" : "keyword",
"ignore_above": 256
}
}
},
"s": {
"type": "integer",
"fields" : {
"keyword": {
"type" : "integer",
"ignore_above": 256
}
}
}
}
},
"dir": {"type": "text"},
"file": {"type": "text"},
"results": {"type": "text"},
"urls": {"type": "text"}
}
}
}
}
}'''
es = Elasticsearch(hosts = [ES_HOST])
if es.indices.exists(INDEX_NAME):
print("deleting '%s' index..." % (INDEX_NAME))
res = es.indices.delete(index = INDEX_NAME)
print(" response: '%s'" % (res))
print("creating '%s' index..." % (INDEX_NAME))
res = es.indices.create(index = INDEX_NAME, body = settings)
print(res)
# bulk index the data
print("bulk indexing...")
res = es.bulk(index = INDEX_NAME, body = final_datas, refresh = True)
Кстати, когда я помещаю аргумент в indices.create с ignore=400, он имеет тенденцию завершать программу, но когда я удаляю аргумент, он генерирует исключение. Я использую Python 3.6, спасибо!