2014-05-12 2 views
6

Попытка построить поиска следующим образом:ElasticSearch QueryParsingException не удалось найти geo_point поле

{ 
    "query": { 
    "filtered": { 
     "query": { 
     "match_all": {} 
     }, 
     "filter": { 
     "geo_distance": { 
      "distance": "50km", 
      "coordinates": { 
      "lat": 52.5234051, 
      "lon": 4.113999 
      } 
     } 
     } 
    } 
    } 
} 

где координаты имеет тип 'geo_point'.

Но когда я пытаюсь запустить этот запрос, elasticsearch.log выскакивает с ошибкой: [места] не удалось найти geo_point поле [координаты]

Edit:

Это часть of/location/location/_mapping:

{ 
    "locations": { 
    "mappings": { 
    "location": { 
    "properties": { 
    ... 
    "coordinates": { 
     "properties": { 
     "lat": { 
      "type": "string" 
     }, 
     "lon": { 
      "type": "string" 
     } 
     } 
    }, 
    ... 
} 
} 

Какие-нибудь идеи, что здесь не так?

+0

Что мы называем полем гео точки? – BlackPOP

+0

@BlackPOP: см. Править оригинальное сообщение –

+2

Я думаю, вы didint использовать geo_point в сопоставлении .. см. Это http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/mapping-geo-point-type. html – BlackPOP

ответ

9

Проблема заключается в сопоставлении. Вам нужно использовать geo_point в сопоставлении. refer this.

+1

Отредактировано с последней ссылкой ..! – BlackPOP

+0

У меня такая же проблема, можете ли вы объяснить больше? – mhndev

Смежные вопросы