【发布时间】:2020-06-12 11:19:20
【问题描述】:
我在 Laravel 中有一个应用程序,数据存储在 ElasticSearch 中。 我想在应用程序中添加两个选项
1-显示最近的 它将用于获取从(用户的)最近位置到最远位置的所有 cmets,并按位置排序。 示例 一位来自巴基斯坦的用户发表评论,另外 2 位来自印度和美国的评论。 因此,当我点击 Show Nearest 时,巴基斯坦用户的评论将排在首位,然后印度对第二个数字的评论和美国对第三个数字的评论(如果我的位置是巴基斯坦)。
2-显示最远 它将用于获取从(用户)最远位置到最近位置的所有 cmets,并按位置排序 示例 假设上面给出的例子,所以,当我点击 Show Farthest 时,美国评论将排在首位,然后印度评论第二个数字,巴基斯坦评论第三个数字(如果我的位置是巴基斯坦)。
此搜索将基于存储在 ElasticSearch 中的每条评论的纬度经度。
文件如下:
post_id(type:text), text(type:text) location(array of lat long) e.g location:[ -71.34, 41.12 ]
我的查询如下:-
[ "query"=>[ "bool"=>[ "filter"=>[ "match"=>[ "post_id" => $id ] ] ] ], "sort" => [ [ "_geo_distance" => [ "location" => [ "lat" => $lat, "lon" => $long ], "order" => "asc", "unit" => "km" ] ] ],]
这不起作用 请帮助我,我是弹性搜索的新手。谢谢
【问题讨论】:
标签: database laravel elasticsearch geolocation latitude-longitude