91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

elasticsearch怎么設置地理位置

發布時間:2021-12-16 10:01:16 來源:億速云 閱讀:210 作者:iii 欄目:大數據

這篇文章主要講解了“elasticsearch怎么設置地理位置”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“elasticsearch怎么設置地理位置”吧!

1. 地理位置

2. 地理坐標點

2.1. 設置索引屬性

  • geo_point: 地理坐標類型

  • lat_lon: 設置為 true 時,latlon 字段將被分別索引。它們可以被用于檢索,但是不會在檢索結果中返回。

{
  "mappings": {
    "<index_name>": {
      "properties": {
        "<field>": {
          "type": "geo_point",
          "lat_lon": true
        }
      }
    }
  }
}

2.2. 經緯度格式

格式一:字符串,格式 "lat,lon"

{
  "location": "40.715, -74.011"
}

格式二:

{
  "location": {
    "lat":     40.722,
    "lon":    -73.989
  }
}

格式三:數組,格式 [lon,lat]

{
  "location": [ -73.983, 40.719 ]
}

3. 過濾查找

3.1. geo_bounding_box

地理坐標盒模型過濾器,找出落在指定矩形框中的點

  • 地理坐標盒模型過濾器不需要把所有坐標點都加載到內存里。 因為它要做的只是簡單判斷 latlon 坐標數值是否在給定的范圍內,可以用倒排索引做一個 range 過濾來實現目標

  • 設置 type 參數為 indexed (替代默認值 memory )來明確告訴 Elasticsearch 對這個過濾器使用倒排索引。

{
    "query": {
        "filtered": {
            "filter": {
                "geo_bounding_box": {
                    "type": "indexed",
                    "location": {
                        "top_left": {
                            "lat": 40.8,
                            "lon": -74.0
                        },
                        "bottom_right": {
                            "lat": 40.7,
                            "lon": -73.0
                        }
                    }
                }
            }
        }
    }
}

3.2. geo_distance

地理距離過濾器,找出與指定位置在給定距離內的點

常用距離單位: mi(英里), yd(碼), in(英寸), km(千米), m(米), cm(厘米), mm(毫秒)

{
    "query": {
        "filtered": {
            "filter": {
                "geo_distance": {
                    "distance": "1km",
                    "location": {
                        "lat": 40.715,
                        "lon": -73.988
                    }
                }
            }
        }
    }
}

3.3. geo_distance_range

地理距離區間過濾器, 找出與指定點距離在給定最小距離和最大距離之間的點

  • 匹配那些距離中心點大于等于 1km 而小于 2km 的位置

{
    "query": {
        "filtered": {
            "filter": {
                "geo_distance_range": {
                    "gte": "1km",
                    "lt": "2km",
                    "location": {
                        "lat": 40.715,
                        "lon": -73.988
                    }
                }
            }
        }
    }
}

3.4. geo_polygon

找出落在多邊形中的點。 這個過濾器使用代價很大。當你覺得自己需要使用它,最好先看看

3.5. 按距離排序

  • 計算每個文檔中 location 字段與指定的 lat/lon 點間的距離

  • 將距離以 km 為單位寫入到每個返回結果的 sort 鍵中

  • 使用快速但精度略差的 plane 計算方式

{
    "query": {
        "filtered": {
            "filter": {
                "geo_bounding_box": {
                    "type": "indexed",
                    "location": {
                        "top_left": {
                            "lat": 40.8,
                            "lon": -74.0
                        },
                        "bottom_right": {
                            "lat": 40.4,
                            "lon": -73.0
                        }
                    }
                }
            }
        }
    },
    "sort": [
        {
            "_geo_distance": {
                "location": {
                    "lat": 40.715,
                    "lon": -73.998
                },
                "order": "asc",
                "unit": "km",
                "distance_type": "plane"
            }
        }
    ]
}

感謝各位的閱讀,以上就是“elasticsearch怎么設置地理位置”的內容了,經過本文的學習后,相信大家對elasticsearch怎么設置地理位置這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

侯马市| 资源县| 正镶白旗| 柘城县| 双峰县| 武宁县| 瑞昌市| 江山市| 徐汇区| 葫芦岛市| 紫云| 四平市| 滦平县| 大方县| 阳江市| 专栏| 利辛县| 治多县| 九江县| 西盟| 诏安县| 邵东县| 攀枝花市| 富裕县| 保康县| 静宁县| 呼和浩特市| 克拉玛依市| 淮滨县| 当涂县| 霍邱县| 霍林郭勒市| 华安县| 英吉沙县| 延庆县| 剑川县| 棋牌| 万源市| 平武县| 纳雍县| 明水县|