我开始认为我想做的事情是不可能的,但我想我会尝试一下。
我正在运行Solr 3.5。
我目前有两种类型的搜索:
来自我的Solr日志的示例查询:
?fl=*,score&sort=score+asc&start=0&q={!func}geodist()&sfield=coordinates&pt=59.2363514,18.092783&version=2
来自Solr日志的示例查询:
mm=1&d=100.0&sfield=coordinates&qf=field1^5.0+fields2^3.0&defType=edismax&version=2&fl=*,score&start=1&q=monkeyhopper&pt=59.2363514,18.0927830000&fq={!geofilt}}
我想用dismax查询替换我的第一个查询,但我真的需要在响应中获得计算的距离。是的,我可以以编程方式计算距离,但我不想这样做,因为Solr已经为我做过了。
我仍然希望能够“按相关性”,距离或任何其他字段对我的dismax查询进行排序,这样我的提升所给出的分数可能对排序很有意义,但我不需要将其返回。
答案 0 :(得分:2)
如果我理解正确,您希望在Solr响应中获得函数的结果。我想是SOLR-2444问题:它允许在fl
参数中包含伪字段,函数等。唯一的问题是它只在trunk上提交,所以它在当前的Solr版本中不可用,也不会在即将发布的3.6版本中。你必须等待4发布,但我认为这不会花费很多时间。也许你已经可以开始使用snapshot上一次成功的Jenkins构建。
答案 1 :(得分:1)
现在,Solr 4+中提供了伪字段,您可以使用它。
http://localhost:8983/solr/collection1/browse?q=*:*&rows=1000&wt=xml&pt=37.763649,-122.24313&sfield=store&fl=dist:geodist()
例如,此请求允许我返回一个字段“dist”,其中包含每个条目到指定点的距离。