gpt4 book ai didi

elasticsearch - 使用Elastica根据位置对结果进行排序

转载 作者:行者123 更新时间:2023-12-03 02:10:23 25 4
gpt4 key购买 nike

我试图学习使用Elastica连接并查找难以获取的信息以了解如何查询它的ElasticSearch。

因此,基本上我想做的是,我已将数据插入 Elasticsearch ,并在其中添加了地理坐标,现在我需要做的是能够运行查询,以对我得到的结果进行最接近的排序。

我想找到我所在州的所有商店,然后按最接近当前位置的顺序对其进行排序。

所以给定一个名为“状态”的字段和一个名为“点”的字段,该字段是使用elastica持有long / Lat的数组,查询将是什么?

感谢您可以给我的任何帮助。

最佳答案

首先,您需要将您的位置字段map键入 geo_point (这需要在插入任何数据之前完成)

{
"stores" : {
"properties" : {
"point" : {
"type" : "geo_point"
}
}
}
}

之后,您只需按 _geo_distance 对搜索进行排序
{
"sort" : [
{
"_geo_distance" : {
"stores.point" : [-70, 40], // <- reference starting position
"order" : "asc",
"unit" : "km"
}
}
],
"query" : {
"match_all" : {}
}
}

对于Elastica,请查看有关 mappingquery building的文档,并阅读单元测试。

关于elasticsearch - 使用Elastica根据位置对结果进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12547626/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com