我正在尝试在Heroku / Bonsai上使用geo_point
字段,但它只是不想工作。
它在本地工作,但每当我在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}
。
答案 0 :(得分: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上输入命令
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