根据另一个数组对Solr Documents进行排序

时间:2015-10-13 14:31:59

标签: solr geospatial distance

我有两个solr架构。一个用于items,一个用于geolocation个项目。我想按距离对物品进行排序,首先是较近的物品。 Items架构有product_id,city_id,etc,etcgeolocation架构有city_id,name,lat_lon个字段。我的要求是显示距用户dcityId公里的结果。我可以使用bbox过滤器从d模式获取geolocation kms范围内的所有城市ID,然后使用geodist()函数按距离排序,然后将此ID列表作为过滤器查询传递到项目架构。但我也希望这些项目以相同的城市ID顺序显示。

与MySql类似:select * from city_id in(58748,15741)ORDER BY Field(city_id,15741,58748)

在solr中有没有解决方法?

1 个答案:

答案 0 :(得分:0)

  1. 对项目和项目的地理位置使用一个模式。不需要有两个模式。您可以将项目和地理位置属性作为一个方案中的不同字段。
  2. 看看function queries第27项 dist 会为你计算距离。
  3. 如需订购,在字段查看stack overflow answer in here后,只需使用 asc desc