[ElasticSearch] 空间搜索 (二)

通过一段时间的空间搜索的学习,其实ES对于空间对象最强大之处就在于其计算能力以及计算速度,能够快速的返回你想要的结果。但在使用过程中也发现一些问题。比如说聚合时,必须保证同一个index下的所有type中不能包含相同的字段名而拥有不同的字段类型。目前还不知原因,猜测聚合是直接查找index中包含的所有字段进行统计的。

得意知道的话也可以留言评论哦!

空间搜索在聚合中的使用

直接上代码:

1.geo_distance

 "aggs": {
    "aggs_geopoint": {
      "geo_distance": {
        "field": "location",
        "origin": {
          "lat": 51.5072222,
          "lon": -0.1275
        },  
        "unit": "km",
        "ranges": [
          {
            "to": 300
          },
          {
            "from": 300,
            "to": 2000
          },
          {
            "from": 2000
          }
        ]
      }
主要作用对一定区域范围内的空间对象进行统计。 上图说话:

2.geohash_grid

 "aggs": {
    "new_york": {
      "geohash_grid": { 
        "field":     "location",
        "precision": 5
      }
    }
  }
geohash将一个二维的坐标转化为一个简单的可排序可比较的字符串.通过一个字符串来代替一个平面。 本博客转载了关于geohash的介绍。

分割成网格,每个网格就是一个bulket,每个桶再进行统计

3.geo_bounds

 "aggs": {
    "map_zoom": { 
      "geo_bounds": {
        "field":     "location"
      }
    }
  }
该geo_bounds聚集将计算封装所有匹配我们查询的文件所需要的最小边界框。所以通常会与geohash聚合一起使用,作为geohash聚合内的聚合,如下:

"aggs": {
    "new_york": {
      "geohash_grid": {
        "field":     "location",
        "precision": 5
      }
    },
    "map_zoom": { 
      "geo_bounds": {
        "field":     "location"
      }
    }
  }
geo_bounds subaggregation计算用于每geohash形成的单元格。

 
geo_bounds 获得包含所有查询文档的最小矩形的左上和右下的坐标



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Elasticsearch是一个基于Lucene的分布式搜索和分析引擎,它提供了丰富的搜索、聚合和数据分析功能。而在Elasticsearch中,向量空间模型可以用于处理文本相关性和相似度的计算。 向量空间模型将文本表示为数值向量,其中每个维度代表一个特征或属性。在Elasticsearch中,可以使用诸如Term Frequency-Inverse Document Frequency(TF-IDF)等技术将文本转换为向量表示。 通过将文本转换为向量表示,Elasticsearch可以计算文档之间的相似度,从而实现相关性搜索和推荐系统。常见的方法是使用余弦相似度来衡量两个向量之间的相似程度。 要在Elasticsearch中使用向量空间模型,通常需要进行以下步骤: 1. 创建索引:将文档数据存储在Elasticsearch索引中。 2. 分析器:使用适当的分析器对文本进行预处理,例如分词、停用词过滤等。 3. 向量化:使用合适的技术将文本转换为向量表示,如TF-IDF、Word2Vec等。 4. 存储:将向量表示存储为Elasticsearch索引的字段。 5. 查询:使用查询语句和相似度算法(如余弦相似度)进行相关性搜索。 需要注意的是,向量空间模型在处理大规模文本数据时可能面临计算和存储的挑战。因此,对于大型数据集,可以考虑使用分布式计算和存储方案来提高性能和扩展性。 希望这个回答对你有帮助!如果你还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值