geolocation - ElasticSearch——使用距点的距离影响查询相关性

标签 geolocation elasticsearch distance

尝试使用 ElasticSearch 创建一个搜索,该搜索使用与中心点的距离来影响相关性。

我不想简单地根据与某个点的距离进行排序,我知道这是可能的,因为我希望基于搜索查询的相关性也会影响结果。

我想传入一个搜索字符串,例如“coffee”和一个纬度/经度,例如“38, -77”,然后根据它们与“coffee”的相关程度组合对我的结果进行排序以及它们与“38,-77”的接近程度。

谢谢!

最佳答案

最近 (0.90.4) 添加的 function_score 查询类型增加了对基于距离排名的支持。这是自定义分数查询类型的替代方法。

http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-function-score-query.html

举个例子:

"query": {
  "function_score": {
    "functions": [
      { "gauss":  { "loc":   { "origin": "51,0", "scale": "5km" }}},
    ]
  }
}

这将衰减函数(有多个)应用于一个字段(“loc”),该字段在给定特定比例的情况下根据与原点的距离进行评分。这正是您想要的距离排名,因为它为您提供了很大的灵 active ,无需编写自定义脚本即可进行排名。

关于geolocation - ElasticSearch——使用距点的距离影响查询相关性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13053295/

相关文章:

geolocation - 如何避开 Google Directions API 中的限制收费站和高速公路?

android - broadcastReceiver 可以捕获多个广播吗?

javascript - HTML5地理定位中的经纬度半径

java - Elasticsearch 查询字符串查询无法与同义词分析器一起使用

elasticsearch - 如何配置Filebeat Kubernetes Deamon以在 namespace 或Pod名称上建立索引

geolocation - 地理围栏 : how to find if a point or a shape is inside a polygon using oracle spatial

elasticsearch - ElasticSearch聚合+在非数值字段5.3上排序

Javascript矩阵和距离计算

java - 在android中获取两个lat lng之间的道路距离

ios - 计算图像对象的真实深度图并从多个图像进行重建