RequestError(400, «исключение parse_exception», «неизвестный ключ [свойства] для создания индекса»)

#python #elasticsearch #kibana

Вопрос:

Я пытаюсь создать индекс elasticsearch с помощью python, содержимое которого представляет собой серию координат, чтобы позже визуализировать эти данные на карте кибаны.

К сожалению, я получаю это сообщение об ошибке:

 RequestError(400, 'parse_exception', 'unknown key [properties] for create index')
 

Это код, который я использую:

 es = Elasticsearch()

mappings = {
       "properties": {
            "geo": {
                "properties": {
                     "location": {
                         "type": "geo_point"
                 }
            }
        }
     } 
 }
 
es.indices.create(index='geodata', body=mappings)
es_entries['geo']={ 'location': str(coor[0]) "," str(coor[1])}
es.index(index='geodata', doc_type="doc", body=es_entries)    
 

Комментарии:

1. Какую версию ES вы используете?

Ответ №1:

Отличная работа, пока что ты почти на месте. Необходимо внести несколько изменений:

     mappings = {
       "mappings": {                      <--- add this
           "properties": {
                "geo": {
                    "properties": {
                         "location": {
                             "type": "geo_point"
                         }
                     }
                }
            }
         }
     }
     
    es.indices.create(index='geodata', body=mappings)
    es_entries['geo']={ 'location': str(coor[0]) "," str(coor[1])}
    es.index(index='geodata', doc_type="_doc", body=es_entries)    
                                        ^
                                        |
                                   modify this