我有如下所示的 solr 文档:
<doc>
<str name="some_attribute">some_attribute_value</str>
<!-- ... -->
<arr name="locationCoordinates">
<str>48.117,11.539</str>
<str>23.423,11.342</str>
<!-- ... -->
</arr>
</doc>
我的问题是是否可以过滤文档的返回字段以仅返回某些值,例如仅返回locationCoordinates
另一个点 50 公里范围内的值,而将其他值排除在外。
即返回上述文件,但只有第一个locationCoordinates
。
我真的不知道这在 Solr 中是否可行(因为面向文档的结构),但我至少可以问:)。
也许我还应该详细说明我想使用此功能的方式以及为此“找到”的替代方案:
更改文档设计以在每个位置创建一个文档(优点:有效,缺点:需要在客户端检查重复项,Solr 数据库中的大量重复数据)
保留这个结构(优点:工作,不必更改当前结构,缺点:我必须自己(在客户端)排序正确的坐标,因此遇到距离计算问题(我已经过滤了文档事先按距离,如果我在客户端计算的距离很差,可能会丢失一些数据)
在 Solr 端为位置(及其名称等)创建一个新的文档“类型”,并使用类似外键的结构将位置添加到文章中,以便计算我必须查询的距离首先到达可到达的位置,然后加入文章(优点:一切都在 solr 端有效,缺点:我需要 Solr-Joins)