似乎geo_point字段被設置在結果忽略單一的活動缺失geo_point字段
{
"mygeo": {
"lat": 51.247607909,
"lon": 22.565701278
},
"location" : "New York"
}
查詢
GET /test01/_search
{
"size" : 1,
"fields": ["location", "mygeo"]
}
在mygeo字段丟失時生成以下內容。 (我也嘗試過「字段」:[「location」,「mygeo.lat」,「mygeo.lon」,「mygeo」])。
"hits": [
{
"_index": "test01",
"_type": "activity",
"_id": "1",
"_score": 1,
"fields": {
"location": [
"New York"
]
}
}
]
我可以得到mygeo對象的唯一方法是通過_source加入 「_source」:{ 「包括」:[ 「mygeo」]}。
有沒有辦法使用「field」參數獲取geo_point字段?
我已經嘗試了Rest API和Java API。兩者使用Elasticsearch v。1.7.1產生相同的結果。
感謝
奇怪,因爲我沒有得到這個錯誤。至少不是如果mygeo實際上在映射模板中聲明爲geo_point的話。然後,mygeo根本不會返回而沒有任何錯誤。我知道非葉節點不能通過字段返回,但mygeo.lat和mygeo.lon不會返回,也不會引發錯誤。 – Matthias
顯然我在那裏的代碼中犯了一個錯字。我將geo_type映射爲不正確,數據作爲字符串插入,但我想我已經找到了如何使其工作。我已經更新了我的答案 –
這種方式應該是這樣。非常感謝。任何想法爲什麼「store」:true必須爲geo_point類型設置? – Matthias