我的目标是将分数分组以对相似项目进行分组,然后按其他字段排序(以“使用价格”为例)。
我可以使用以下查询完成此操作:
/ select?defType = func& q = rint(product({(v = the search term}),100))& fl = score,price& sort = score%20desc,price
但是,此查询将返回Solr中索引的每个文档。
如何过滤此查询以排除得分为0的项目?
我已经尝试将{!frange l = 1}添加到查询中哪种工作...但它使所有得分等于1.这显然不是很好,因为我需要首先显示最相关的结果。
提前感谢您的帮助。
Alex
答案 0 :(得分:0)
我花了好几个小时试图过滤掉相关性得分为0的值。我无法找到任何直接的方法来做到这一点。我最终通过将查询函数分配给本地参数的解决方法来完成此操作。我在查询("q="
)和过滤查询("fq="
)中调用此本地参数。
我们假设你有一个类似的查询:
q={!func}sum(*your arguments*)
首先,使函数组件成为自己的参数:
q={!func}$localParam
&localParam={!func}sum(*your arguments*)
现在只返回分数在1到10之间的结果,只需在该localParam上添加一个过滤查询:
q={!func}$localParam
&localParam={!func}sum(*your arguments*)
&fq={!frange l=1 u=10 inclusive=true}$localParam