89 ElasticSearch Java API 基于地理位置搜索

89 ElasticSearch Java API 基于地理位置搜索

代码

<dependency>
    <groupId>org.locationtech.spatial4j</groupId>
    <artifactId>spatial4j</artifactId>
    <version>0.6</version>                        
</dependency>

<dependency>
    <groupId>com.vividsolutions</groupId>
    <artifactId>jts</artifactId>
    <version>1.13</version>                         
    <exclusions>
        <exclusion>
            <groupId>xerces</groupId>
            <artifactId>xercesImpl</artifactId>
        </exclusion>
    </exclusions>
</dependency>

比如我们有很多的4s店,然后呢给了用户一个app,在某个地方的时候,可以根据当前的地理位置搜索一下,自己附近的4s店

POST /car_shop/_mapping/shops
{
  "properties": {
      "pin": {
          "properties": {
              "location": {
                  "type": "geo_point"
              }
          }
      }
  }
}
PUT /car_shop/shops/1
{
    "name": "上海至全宝马4S店",
    "pin" : {
        "location" : {
            "lat" : 40.12,
            "lon" : -71.34
        }
    }
}

第一个需求:搜索两个坐标点组成的一个区域

QueryBuilder qb = geoBoundingBoxQuery("pin.location").setCorners(40.73, -74.1, 40.01, -71.12); 

第二个需求:指定一个区域,由三个坐标点,组成,比如上海大厦,东方明珠塔,上海火车站

List<GeoPoint> points = new ArrayList<>();             
points.add(new GeoPoint(40.73, -74.1));
points.add(new GeoPoint(40.01, -71.12));
points.add(new GeoPoint(50.56, -90.58));
QueryBuilder qb = geoPolygonQuery("pin.location", points); 

第三个需求:搜索距离当前位置在200公里内的4s店

QueryBuilder qb = geoDistanceQuery("pin.location").point(40, -70).distance(200, DistanceUnit.KILOMETERS);   

SearchResponse response = client.prepareSearch("car_shop")
        .setTypes("shops")
        .setQuery(qb)                
        .get();

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: elasticsearch java api官方文档是官方提供的关于使用elasticsearchJava API的指南和参考手册。它详细介绍了elasticsearch的各种功能、方法和参数,帮助开发人员理解和使用elasticsearchJava API。 官方文档提供了详细的使用示例和代码片段,帮助开发人员快速上手。通过官方文档,开发人员可以了解如何建立elasticsearch客户端连接、创建索引、添加文档、进行搜索和查询等操作。此外,官方文档还介绍了如何使用各种过滤器、聚合操作和排序功能,以及如何进行全文搜索地理位置搜索。 官方文档也提供了关于如何处理异常和错误的指导,帮助开发人员更好地进行故障排查和处理。此外,官方文档还包含了关于性能调优、集群管理和安全配置等方面的建议和最佳实践。 总之,elasticsearch java api官方文档是一个非常有价值的工具,它为使用Java开发elasticsearch应用程序的开发人员提供了必要的指导和支持。通过阅读官方文档,开发人员可以更好地理解和掌握elasticsearchJava API,提高应用程序的性能和稳定性。 ### 回答2: elasticsearch java API官方文档是elasticsearch官方提供的用于Java开发的API文档。它包含了elasticsearch中所有Java API的详细说明和使用指南,可以帮助开发人员在Java应用程序中使用elasticsearch进行索引、搜索和管理数据。 elasticsearch是一个开源的分布式搜索和分析引擎,它基于Lucene库构建,并提供了一个RESTful API用于与其进行交互。elasticsearch java API官方文档通过提供详细的类和方法的说明,以及示例代码和最佳实践,帮助开发人员快速上手elasticsearch并实现各种功能。 在elasticsearch java API官方文档中,开发人员可以了解到如何创建和配置elasticsearch客户端、连接到elasticsearch集群、执行不同类型的搜索、对结果进行排序和过滤、执行聚合操作、进行索引和文档的操作、处理分页和滚动搜索等等。 官方文档还提供了一系列的代码示例,帮助开发人员理解和学习elasticsearch java API的使用。这些示例覆盖了不同的应用场景,如基本搜索、复杂搜索地理位置搜索、聚合查询等等,使得开发人员能够根据自己的需求,快速上手并进行开发。 总而言之,elasticsearch java API官方文档是elasticsearch官方提供的非常有价值的资源,将帮助开发人员在Java应用程序中有效地使用elasticsearch进行搜索和管理数据。通过阅读官方文档,开发人员能够深入了解elasticsearch的工作原理和各种功能的使用方法,从而更好地构建出强大的搜索应用。 ### 回答3: Elasticsearch Java API官方文档是为了帮助Java开发者使用Elasticsearch搜索引擎而编写的一份指南。这个文档详细介绍了如何在Java应用程序中使用Elasticsearch的各种功能和特性。 该文档首先提供了关于Elasticsearch的简要介绍,包括其核心概念、工作原理和主要用途。然后,它详细描述了如何在Java应用程序中集成和配置Elasticsearch客户端,并提供了使用示例。 接下来,文档介绍了Elasticsearch搜索功能,包括如何构建查询、执行过滤和排序操作以及如何使用聚合框架。它还解释了Elasticsearch中的分析器和分词器是如何工作的,并且给出了一些常见的搜索用例和示例代码。 此外,文档还介绍了Elasticsearch的索引管理和数据操作,包括如何创建索引、映射字段和执行文档的添加、更新和删除等操作。它还介绍了如何使用批量API执行批量操作以提高性能。 最后,文档提供了关于Elasticsearch的聚合和分析的详细信息,包括基本聚合、嵌套聚合和地理空间聚合等。它还解释了如何通过使用Elasticsearch的插件系统扩展其功能。 总体而言,Elasticsearch Java API官方文档提供了丰富的内容和严谨的示例代码,使Java开发者能够快速上手并有效地利用Elasticsearch的强大功能。无论是初学者还是有经验的开发者,都可以从这个文档中获得宝贵的指导和参考。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值