国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Elasticsearch 基于地理位置的搜索查詢

這篇具有很好參考價(jià)值的文章主要介紹了Elasticsearch 基于地理位置的搜索查詢。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

? ? ? ? ?ES為用戶提供了基于地理位置的搜索功能。它主要支持兩種類型的地理查詢:一種是地理點(diǎn)(geo_point),即經(jīng)緯度查詢,另一種是地理形狀查詢(geo_shape),即支持點(diǎn),線,圓形和多邊形等查詢。

? ? ? ? 從實(shí)用性來說,地理點(diǎn)(即geo_point)數(shù)據(jù)類型的使用更多一些,對(duì)于geo_point字段類型的查詢方式有三種,分別為geo_distance查詢(圓形區(qū)域查詢),geo_bounding_box查詢(矩形區(qū)域查詢)和geo_polygon查詢(多邊形區(qū)域查詢)。

1.geo_distance圓形區(qū)域查詢

geo_distance需要指定一個(gè)坐標(biāo)點(diǎn),在指定該點(diǎn)距離的范圍后,ES可查詢到以該點(diǎn)為中心,距離為半徑的圓形區(qū)域的數(shù)據(jù)。

1.1 查詢的DSL

GET index_school/_search
{
  "_source": [                        // 只返回部分字段
    "name",
    "latitude",
    "longitude",
    "devideNo",
    "time"
    ], 
  "query": {
    "geo_distance":{
      "distance": "5km",             // 距離范圍(半徑)為5km
      "location":{                   //中心點(diǎn)經(jīng)緯度
        "lat": "18.231472",
        "lon": "109.502083"
      }
    }
  }
}

1.2 java實(shí)現(xiàn)

SearchRequest request = new SearchRequest(tableName);
BoolQueryBuilder boolQuery = QueryBuilders.boolQuery();
boolQuery.filter(QueryBuilders.geoDistanceQuery("location")                //指定索引字段
.distance(inputDTO.getDistance())                                          //距離中心點(diǎn)范圍(半徑)
.point(18.231472,109.502083));                                             //中心點(diǎn)
request.source().query(boolQuery).size(10000).trackTotalHits(true);
SearchResponse response = restHighLevelClient.search(request, RequestOptions.DEFAULT);

2.geo_bounding_box矩形區(qū)域查詢

geo_bounding_box查詢提供的是矩形內(nèi)的搜索,需要提供左上角和右下角的頂點(diǎn)坐標(biāo)。

2.1 查詢的DSL

GET index_school/_search
{
  "_source": [                        
    "name",
    "latitude",
    "longitude",
    "devideNo",
    "time"
    ], 
  "query": {
    "geo_bounding_box":{
      "location":{   
        "top_left":{                          //設(shè)置左上角頂點(diǎn)坐標(biāo)
           "lat": "18.431472",
           "lon": "109.502083"
        },
        "bottom_right":{                      //設(shè)置右下角頂點(diǎn)坐標(biāo)
           "lat": "18.231472",
           "lon": "109.202083"
        }
      }
    }
  }
}

2.2 java實(shí)現(xiàn)

SearchRequest request = new SearchRequest(tableName);
BoolQueryBuilder boolQuery = QueryBuilders.boolQuery();
boolQuery.filter(QueryBuilders.geoBoundingBoxQuery("location")             //指定索引字段
.setCorners(inputDTO.getYMax(), inputDTO.getXMin(),                        //構(gòu)造矩形
                    inputDTO.getYMin(), inputDTO.getXMax()));
request.source().query(boolQuery).size(10000).trackTotalHits(true);
SearchResponse response = restHighLevelClient.search(request, RequestOptions.DEFAULT);

3.geo_polygon多邊形區(qū)域查詢

geo_polygon比geo_bounding_box提供的地理范圍功能更加靈活,它支持靈活多變的多邊形內(nèi)數(shù)據(jù)查詢,使用該查詢需要提供多邊形所有頂點(diǎn)的坐標(biāo)。文章來源地址http://www.zghlxwxcb.cn/news/detail-528685.html

3.1 查詢的DSL

GET index_school/_search
{
  "query": {
    "geo_polygon":{
      "location":{   
        "points":[
          {
           "lat": "20.219935",
           "lon":  "109.700590"
          },
          {
           "lat": "20.118963",
           "lon":  "109.865898"
          },
          {
           "lat": "20.148887",
           "lon":  "110.1842848"
          },
          {
           "lat": "20.355594",
           "lon":  "111.097193"
          },
          {
           "lat": "20.295775",
           "lon":  "111.791273"
          }
        ]
      }
    }
  }
}

3.2 java實(shí)現(xiàn)

String AREA_POINTS =
            "109.70059057645672,20.219935185668575," +
            "109.86589885747735,20.11896383759739," +
            "110.18428481460053,20.148887724639927," +
            "111.09719394252089,20.355594505110506," +
            "111.79127352756524,20.295775199436054," +
            "111.44955008175484,19.864326194135216," +
            "110.65937420024187,18.52295323361459," +
            "109.76478316052932,17.989118493905913," +
            "109.57997296428381,17.95228226006386";
SearchRequest request = new SearchRequest(tableName);
BoolQueryBuilder boolQuery = QueryBuilders.boolQuery();
List<GeoPoint> points = new ArrayList<>();
String[] strings = AREA_POINTS.split(",");
for (int i = 0; i < strings.length; i = i + 2) {
    points.add(new GeoPoint(Double.valueOf(strings[i + 1]), Double.valueOf(strings[i])));
}
boolQuery.filter(QueryBuilders.geoPolygonQuery("location",points));
request.source().query(boolQuery).size(10000).trackTotalHits(true);
SearchResponse response = restHighLevelClient.search(request, RequestOptions.DEFAULT);

到了這里,關(guān)于Elasticsearch 基于地理位置的搜索查詢的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • IP詳細(xì)地理位置查詢:技術(shù)原理與應(yīng)用實(shí)踐

    IP詳細(xì)地理位置查詢:技術(shù)原理與應(yīng)用實(shí)踐

    IP地址是互聯(lián)網(wǎng)上設(shè)備的唯一標(biāo)識(shí),在網(wǎng)絡(luò)安全、個(gè)性化服務(wù)等領(lǐng)域具有重要意義。通過IP詳細(xì)地理位置查詢,可以獲取到IP地址所在地的具體信息,為網(wǎng)絡(luò)管理、定位服務(wù)等提供支持。IP數(shù)據(jù)云將深入探討IP詳細(xì)地理位置查詢的技術(shù)原理、應(yīng)用實(shí)踐以及相關(guān)的隱私安全考慮,以

    2024年02月21日
    瀏覽(15)
  • AI:87-基于深度學(xué)習(xí)的街景圖像地理位置識(shí)別

    AI:87-基于深度學(xué)習(xí)的街景圖像地理位置識(shí)別

    ?? 本文選自專欄:人工智能領(lǐng)域200例教程專欄 從基礎(chǔ)到實(shí)踐,深入學(xué)習(xí)。無論你是初學(xué)者還是經(jīng)驗(yàn)豐富的老手,對(duì)于本專欄案例和項(xiàng)目實(shí)踐都有參考學(xué)習(xí)意義。 ??? 每一個(gè)案例都附帶有在本地跑過的代碼,詳細(xì)講解供大家學(xué)習(xí),希望可以幫到大家。歡迎訂閱支持,正在

    2024年02月05日
    瀏覽(21)
  • 一種基于位置預(yù)測(cè)的無人機(jī)輔助海面自組網(wǎng)地理路由算法

    【摘? 要】 為解決傳統(tǒng)海上通信方式中衛(wèi)星通信傳輸時(shí)延較長(zhǎng),岸基通信覆蓋范圍有限的問題,提出一種基于位置預(yù)測(cè)的無人機(jī)輔助海面自組網(wǎng)地理路由算法。所提算法采用高斯馬爾科夫模型獲取節(jié)點(diǎn)的預(yù)測(cè)位置。若遇到路由空洞,轉(zhuǎn)發(fā)節(jié)點(diǎn)發(fā)起兩跳轉(zhuǎn)發(fā)過程。多因素決策考

    2024年02月03日
    瀏覽(21)
  • 地理空間分析12——地理位置數(shù)據(jù)隱私與安全

    在數(shù)字化時(shí)代,地理位置數(shù)據(jù)成為了眾多應(yīng)用程序和服務(wù)不可或缺的一部分。從導(dǎo)航應(yīng)用到社交媒體,從廣告定位到城市規(guī)劃,地理位置數(shù)據(jù)的應(yīng)用范圍廣泛。然而,這些數(shù)據(jù)的收集和使用也引發(fā)了廣泛的隱私和安全擔(dān)憂。本文將探討地理位置數(shù)據(jù)隱私的挑戰(zhàn)和重要性,并介

    2024年03月19日
    瀏覽(28)
  • 小程序地理位置接口申請(qǐng)

    小程序地理位置接口申請(qǐng)

    申請(qǐng)接口理由: wx.chooseAddress 獲取用戶收貨地址提交理由: 快速定位用戶當(dāng)前位置,獲取省市區(qū)等地址信息,方便用戶提交地址等信息 wx.chooseLocation打開地圖選擇位置接口提交理由: 為了方便用戶能夠快速的獲取地址, 定位用戶位置信息 wx.getLocation獲取當(dāng)前地理位置,速度:

    2024年02月12日
    瀏覽(24)
  • 通過ip獲取地理位置信息

    GeoLite2-City.mmdb 文件是 MaxMind 公司提供的一個(gè)免費(fèi)的 IP 地址與城市地理位置映射數(shù)據(jù)庫(kù)文件。它包含了 IP 地址范圍與對(duì)應(yīng)的城市、地區(qū)、國(guó)家、經(jīng)緯度等地理位置信息的映射。這種數(shù)據(jù)庫(kù)文件可以用于識(shí)別訪問您的應(yīng)用程序或網(wǎng)站的用戶的地理位置,從而實(shí)現(xiàn)針對(duì)不同地區(qū)的

    2024年02月12日
    瀏覽(20)
  • Unity之獲取用戶地理位置

    Unity之獲取用戶地理位置

    1.1 利用bilibili的api 【未知穩(wěn)定性】 lua代碼 ?1.2 利用baidu api 【配額超限,需要擴(kuò)充配額,需要聯(lián)系官方】 2.1?API: \\\"https://api.ipify.org\\\" 和 心知天氣官網(wǎng)“心知天氣 - 高精度氣象數(shù)據(jù) - 天氣數(shù)據(jù)API接口 - 行業(yè)氣象解決方案” 獲取公網(wǎng)IP 根據(jù)IP獲取地理信息和天氣信息,json反解析

    2024年02月14日
    瀏覽(19)
  • 使用uniapp開發(fā)獲取地理位置

    使用uniapp開發(fā)獲取地理位置

    老板要求做一個(gè)微信小程序,后面又希望能轉(zhuǎn)為app. 所以選擇了uniapp開發(fā). 我的體驗(yàn)和感想就是以后不用uniapp了. 資源不多,學(xué)習(xí)了可能用處也不大.適合外包的干.這里寫一下使用uniapp開發(fā)微信小程序獲取地理位置 基本邏輯是使用uniapp的api首先獲得地理經(jīng)緯度位置等信息(在這之前

    2024年02月07日
    瀏覽(28)
  • Unity 獲取手機(jī)地理位置信息

    在游戲的開發(fā)過程中,有時(shí)候會(huì)遇到需要獲取玩家位置信息的需求,比如顯示玩家所在的國(guó)家城市等。 有一下方法可以參考: 可以根據(jù)手機(jī)的地區(qū)和語言來做判斷。 根據(jù)IP來判斷所處的位置,阿里云啥的都有對(duì)應(yīng)的接口服務(wù)。 根據(jù)GPS來判斷。 以上方法都各有利弊吧,這里簡(jiǎn)

    2024年02月12日
    瀏覽(19)
  • ip地址和地理位置有關(guān)系嗎

    在互聯(lián)網(wǎng)時(shí)代,網(wǎng)絡(luò)已經(jīng)成為了人們生活中不可或缺的一部分。而在網(wǎng)絡(luò)通信中,IP地址扮演著非常重要的角色。那么,IP地址和地理位置之間是否有關(guān)系呢?虎觀代理小二二將從以下幾個(gè)方面進(jìn)行探討。 一、IP地址和地理位置的基本概念 首先,讓我們了解一下IP地址和地理位

    2024年02月12日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包