地理座標點
地理座標點是指地球表面可以用經緯度描述的乙個點。 地理座標點可以用來計算兩個座標間的距離,還可以判斷乙個座標是否在乙個區域中。地理座標點需要顯式宣告對應字段型別為 geo_point :
put /company-locations
, "location": }}}
put /company-locations/_doc/1
put /company-locations/_doc/2
}put /company-locations/_doc/3
字串形式以半形逗號分割,如 「lat,lon」
物件形式顯式命名為 lat 和 lon
陣列形式表示為 [lon,lat]
通過地理座標點過濾
有四種地理座標點相關的過濾器 可以用來選中或者排除文件
插入以下文件,將會報錯
user索引層設定dynamic是strict,在user層內設定age將報錯
在address層設定dynamic是ture,將動態對映生成字段
}如果你想在執行時增加新的字段,你可能會啟用動態對映。 然而,有時候,動態對映 規則 可能不太智慧型。幸運的是,我們可以通過設定去自定義這些規則,以便更好的適用於你的資料
日期檢測
當 elasticsearch 遇到乙個新的字串欄位時,它會檢測這個字段是否包含乙個可識別的日期,比如2014-01-01 如果它像日期,這個欄位就會被作為 date 型別新增。否則,它會被作為 string 型別新增。
有些時候這個行為可能導致一些問題。想象下,你有如下這樣的乙個文件:
假設這是第一次識別 note 字段,它會被新增為 date 字段。但是如果下乙個文件像這樣:
這顯然不是乙個日期,但為時已晚。這個字段已經是乙個日期型別,這個 不合法的日期 將會造成乙個異常。
日期檢測可以通過在根物件上設定 date_detection 為 false 來關閉
}使用這個對映,字串將始終作為 string 型別。如果需要乙個 date 字段,必須手動新增。elasticsearch 判斷字串為日期的規則可以通過 dynamic_date_formats setting 來設定
delete /my_index
put /my_index
}put /my_index/_doc/1
put /my_index/_doc/1
put /my_index2}},
}}]}}
put /my_index2/_doc/1
}}
Elasticsearch 地理搜尋
目錄任意地理形狀搜尋 elasticsearch中使用geo point型別定義地理位置。下面是一些示例資料 location欄位是geo point型別的,可以使用字串,數字或者乙個物件來提供經緯度。注意使用字串和陣列來提供經緯度時,經度和緯度引數有不同的順序。最後一條記錄使用地理雜湊值,詳細描述...
elasticsearch基於地理位置的搜尋
參考 elasticsearch基於地理位置的搜尋,有乙個專門的物件geo point儲存地理位置資訊 經度,緯度 並且提供了一些基本的查詢方法,如geo bounding box。put my geo name 建立了乙個my geo索引,新增了乙個欄位location,它的型別是geo poin...
Elasticsearch實戰 地理位置查詢
為了方便學習es的地理位置查詢,這裡準備了一些地理座標為測試資料,每一條資料都包含城市名稱和地理座標兩個字段。首先把下面的內容儲存到geo.json檔案中 然後建立乙個索引 put geo,location 再執行 geo distancequery可以查詢在乙個中心點指定半徑範圍內的地理文件。例如...