Solr - 在过滤器 (fq) 中使用原始查询参数函数的结果

Solr - Using the Result of a Raw Query Param Function in a Filter (fq)

我正在尝试使用函数的结果,例如距离度量。

我有一个原始查询参数

distance=query({!func v='mul(geodist(store_location,45.98,-110.65),1.60934)'})

我知道我可以将它用作字段,方法是将它放在查询字符串中作为

fl=*,distance:$distance

是否有等效于在 fq 参数中使用它的方法?像

一样使用它
fq=$distance:[0 TO 100]
# or
fq=distance:[0 TO 100]

好像不行。是否有另一种语法来访问文档的这个自定义值并对其进行过滤?总体目标是过滤掉超过一定里程范围的结果。然后我应该能够得到结果中所有文档的计数。

您可以使用 geofilt 查询解析器执行此操作,并在 fl 中获取计算的 geodist() :

q=*:*&fq={!geofilt}&sfield=store_location&pt=45.98,-110.65&d=160.934&fl=*,geodist()