Объемные данные об ошибке транспорта 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, спасибо!

0 ответов

Другие вопросы по тегам