美文网首页java从0到架构师
79_elasticsearch高手进阶_酒店o2o搜索案例以及

79_elasticsearch高手进阶_酒店o2o搜索案例以及

作者: 小山居 | 来源:发表于2020-03-04 15:43 被阅读0次

    79_elasticsearch高手进阶_酒店o2o搜索案例以及搜索指定区域内的酒店

    稍微真实点的案例,酒店o2o app作为一个背景,用各种各样的方式,去搜索你当前所在的地理位置附近的酒店

    搜索指定区域范围内的酒店,比如说,我们可以在搜索的时候,指定两个地点,就要在东方明珠大厦和上海路组成的矩阵的范围内,搜索我想要的酒店
    建立索引mapping

    PUT /hotel_app
    {
        "mappings": {
            "hotels": {
                "properties": {
                    "pin": {
                        "properties": {
                            "location": {
                                "type": "geo_point"
                            }
                        }
                    }
                }
            }
        }
    }
    
    

    添加数据

    PUT /hotel_app/hotels/1
    {
        "name": "喜来登大酒店",
        "pin" : {
            "location" : {
                "lat" : 40.12,
                "lon" : -71.34
            }
        }
    }
    

    然后根据两个角点去搜素

    GET /hotel_app/hotels/_search
    {
      "query": {
        "bool": {
          "must": [
            {
              "match_all": {}
            }
          ],
          "filter": {
            "geo_bounding_box": {
              "pin.location": {
                "top_left" : {
                    "lat" : 40.73,
                    "lon" : -74.1
                },
                "bottom_right" : {
                    "lat" : 40.01,
                    "lon" : -71.12
                }
              }
            }
          }
        }
      }
    }
    

    再然后根据多边形搜素

    GET /hotel_app/hotels/_search 
    {
      "query": {
        "bool": {
          "must": [
            {
              "match_all": {}
            }
          ],
          "filter": {
            "geo_polygon": {
              "pin.location": {
                "points": [
                  {"lat" : 40.73, "lon" : -74.1},
                  {"lat" : 40.01, "lon" : -71.12},
                  {"lat" : 50.56, "lon" : -90.58}
                ]
              }
            }
          }
        }
      }
    }
    

    我们现在要指定东方明珠大厦,上海路,上海博物馆,这三个地区组成的多边形的范围内,我要搜索这里面的酒店

    相关文章

      网友评论

        本文标题:79_elasticsearch高手进阶_酒店o2o搜索案例以及

        本文链接:https://www.haomeiwen.com/subject/actblhtx.html