Не могу заставить geo_point работать с Бонсай на Heroku
Я пытаюсь использовать geo_point
поле на Heroku/Bonsai, но оно просто не хочет работать.
Он работает локально, но всякий раз, когда я проверяю сопоставление для моего индекса на Heroku/Bonsai, он говорит, что мое поле является строкой: "coordinates":{"type":"string"}
Мое отображение выглядит так:
tire.mapping do
...
indexes :coordinates, type: "geo_point", lat_lon: true
...
end
И мой to_indexed_json
как это:
def to_indexed_json
{
...
coordinates: map_marker.nil? ? nil : [map_marker.latitude, map_marker.longitude].join(','),
...
}.to_json
end
В консоли на Heroku я попробовал MyModel.mapping
а также MyModel.index.mapping
и первый правильно имеет :coordinates=>{:type=>"geo_point", :lat_lon=>true}
,
1 ответ
Вот как я получил это на работу. Имя индекса 'myindex' имя типа 'myindextype'
На локальной машине
curl -XGET https://[LOCAL_ES_URL]/myindex/myindextype/_mapping
сохранить вывод в файл.json. пример: typedefinition.json (или сборка вручную)
{
"myindextype":{
"properties":{
"dataone":{"type":"string"},
"datatwo":{"type":"double"},
"location":{"type":"geo_point"},
"datathree":{"type":"long"},
"datafour":{"type":"string"}
}
}
}
На героку введите команду
heroku config
и получите BONSAI_URL. Поместите его в следующие команды вместо [BONSAI_URL]. ( https://asdfasdfdsf:asdfadf@asdfasdfasdf.us-east-1.bonsai.io/myindex)
curl -XDELETE https://[BONSAI_URL]/myindex
curl -XPOST https://[BONSAI_URL]/myindex
curl -XPUT -d@typedefinition.json https://[BONSAI_URL]/myindex/myindextype/_mapping
curl -XGET https://[BONSAI_URL]/myindex/myindextype/_mapping
- Удаляет индексы, если они существуют.
- Создан пустой индекс.
- Использует файл.json как определение для отображения.
- Получите новое отображение, чтобы убедиться, что оно работает.