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

2019-08-01 21:23发布

尝试使用ElasticSearch创建使用从中心点的距离来影响相关的搜索。

我不想简单地排序从一个点,这是我所知道的是可能的距离,因为我想基于搜索的查询也影响结果的相关性。

我想在搜索字符串传递,说“咖啡”和经/纬度,说:“38,-77”,并得到我的结果通过他们是如何相关是“咖啡”,以及如何紧密结合有序他们是 “38,-77”。

谢谢!

Answer 1:

您可以使用distance函数中的脚本自定义分数查询修改_score基于从中心点的距离。



Answer 2:

最近(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”)的得分对所述距离从原点给定的特定尺度。 这正是你想要什么,距离排名,因为它给了你很多的灵活性,它应该如何排名,而无需编写自定义脚本。



文章来源: ElasticSearch — use distance from point to affect query relevance