Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting Elasticsearch中基于位置和评级的自定义排序_Sorting_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Location - Fatal编程技术网 elasticsearch,location,Sorting,elasticsearch,Location" /> elasticsearch,location,Sorting,elasticsearch,Location" />

Sorting Elasticsearch中基于位置和评级的自定义排序

Sorting Elasticsearch中基于位置和评级的自定义排序,sorting,elasticsearch,location,Sorting,elasticsearch,Location,我们目前正在为我们的记录列表建立一种“最佳”方法,我们需要根据地理距离和评级一起对记录进行排序 例如,距离为0-1Km的记录将根据较高的分级进行排序,距离为1-2km的记录也将根据较高的分级进行排序。但任何记录的地理距离为0.95公里,等级为7,另一记录的地理距离为1.1公里,等级为9。距离为0.95公里的记录将位居榜首。因此,将距离分组为1Km距离,然后根据等级对其进行排序 如何将此直接应用于elasticsearch。我想需要自定义排序脚本吗?您可以尝试以下方法: 按“评级”对所有结果进行排

我们目前正在为我们的记录列表建立一种“最佳”方法,我们需要根据地理距离和评级一起对记录进行排序

例如,距离为0-1Km的记录将根据较高的分级进行排序,距离为1-2km的记录也将根据较高的分级进行排序。但任何记录的地理距离为0.95公里,等级为7,另一记录的地理距离为1.1公里,等级为9。距离为0.95公里的记录将位居榜首。因此,将距离分组为1Km距离,然后根据等级对其进行排序

如何将此直接应用于elasticsearch。我想需要自定义排序脚本吗?

您可以尝试以下方法:

按“评级”对所有结果进行排序:

应用地理距离agg:

在geo agg中,嵌入top hits agg以查看实际结果:

如果这不会导致每个地理范围存储桶中的最高点击数按“评级”排序,则将查询作为功能评分查询,分数仅为评级