Elasticsearch實戰 地理位置查詢

2021-10-02 03:58:33 字數 1749 閱讀 5452

為了方便學習es的地理位置查詢,這裡準備了一些地理座標為測試資料,每一條資料都包含城市名稱和地理座標兩個字段。首先把下面的內容儲存到geo.json檔案中:

}}}

}}}}

}}

然後建立乙個索引:

put geo,:

,"location":}

}}

再執行:

geo_distancequery可以查詢在乙個中心點指定半徑範圍內的地理文件。例如查詢距離天津500km以內的城市,搜尋結果會返回北京、濟南,命令如下:

},

"filter":}

}}}}

按距離天津的距離排序:

},

"filter":}

}}},

"sort":[

,"unit"

:"km"}}

]}

geo_bounding_boxquery用於查詢落入指定的矩形內的地理座標。查詢中由兩個點確定乙個矩形,如圖中的銀川和南昌,在這兩個點上分別做垂線(經度)和平行線(維度),相交線會組成乙個矩形區域,可以查詢到西安、鄭州、武漢。

左上角和右下角查詢

},

"filter":,

"bottom_right":}

}}}}

}

左下角和右上角查詢

},

"filter":,

"bottom_left":}

}}}}

}

geo_polygonquery用於查詢指定多邊形內的地理點。例如,呼和浩特、重慶、上海三地組成的三角形,查詢位置在改三角形區域內的城市。

},

"filter":,

,]}}

}}}}

geo_shapequery用於查詢geo_shape型別的地理資料,地理形狀之間包含的關係有:相交、包含、不相交三種。建立乙個新的索引用於測試,其中location欄位的型別設定為geo_shape型別:

put geoshape,:

,"location":}

}}

geo_point型別的字段是:緯度在前,經度在後,但是geo_shape型別中的點是:經度在前,緯度在後。這點需要特別注意。

post geoshape/_doc/

1}

查詢包含在由銀川和南昌組成的矩形的地理形狀內的資料,由於西安和鄭州組成的直線落在該矩形區域內,因此可以被查詢到。

},

"filter":,

"relation"

:"within"}}

}}}}

ElasticSearch實戰 入門

今天接著 elasticsearch實戰 日誌監控平台 一文來給大家分享後續的學習,在 elasticsearch實戰 日誌監控平台 中給大家介紹乙個日誌監控平台的架構方案,接下來給大家分享如何去搭建部署這樣乙個平台,給大家做乙個入門介紹。下面是今天的分享目錄 下面開始今天的內容分享。搭建 elas...

ElasticSearch入門實戰1

document資料格式 電商 商品管理案例背景介紹 簡單的集群管理 商品的crud操作 document curd 面向文件的搜尋分析引擎 public class employee private class employeeinfo employeeinfo info new employee...

Elasticsearch系列 實戰搜尋語法

空查詢 最簡單的搜尋命令,不指定索引和型別的空搜尋,它將返回集群下所有索引的所有文件 預設顯示10條 get search 搜尋多個索引get index1,index2 doc search 指定分頁搜尋get search get帶request body http協議,get請求帶body是不...