我想使用一个伪字段来返回距我的solr (geo)空间搜索中心的距离,就像这里解释的那样:function,当它说:
返回距离 Solr4.0 通过向请求添加fl=geodist(),您可以使用伪字段特性返回每个文档的距离以及存储的字段。使用像fl=dist:geodist()这样的别名使距离返回到dist伪字段中。下面是一个按距离进行排序的示例,为dist中的每个文档进行升序和返回距离。 ...&q=&sfield=store&pt=45.15,-93.85&sort=geodist() asc&fl=dist:geodist()
现在,我正在使用solrj (4.5.1),无法找到正确设置fl=_dist_:geodist()部件的方法。实际上,我可以设法将它添加到solrQuery对象中:
solrQuery.setParam('fl', '_dist_:geodist()')没有编译错误,但由于某种原因,这会扰乱我返回的文档。
你知道该怎么做吗?
Ps。代码是用groovy语言编写的,不要因为单引号中没有分号或字符串而抓狂:)
* UPDATE *
如前所述,设置fl参数实际上会导致返回只包含_dist_字段的文档!
发布于 2014-02-25 23:07:46
经过几分钟的搜索,我找到了这篇文章:http://solr.pl/en/2011/11/22/solr-4-0-new-fl-parameter-functionalities-first-look/
它解释了除了所有其他参数之外,如何返回新的别名字段,就像这样(请注意*部分):
fl=*,stock:sum(stockMain,stockShop)因此,在我的solrj示例中,它将是:
solrQuery.setParam('fl', '*,_dist_:geodist()')https://stackoverflow.com/questions/22027885
复制相似问题