3

我在 Solrfq中有一个按预期工作的范围函数:

{!frange l=1 u=2}sum(termfreq(tags,'twitter'),termfreq(tags,'facebook'),termfreq(tags,'pinterest'))

但是,如果我尝试通过在末尾添加一个附加参数来进一步完善它:

{!frange l=1 u=2}sum(termfreq(tags,'twitter'),termfreq(tags,'facebook'),termfreq(tags,'pinterest')) AND (region:"US")

我收到错误:org.apache.solr.search.SyntaxError: Unexpected text after function: AND (region:"US")

如果我尝试添加一个附加参数:

(region:"US") AND {!frange l=1 u=2}sum(termfreq(tags,'twitter'),termfreq(tags,'facebook'),termfreq(tags,'pinterest'))

我收到错误:org.apache.solr.search.SyntaxError: Expected ')' at 'sum(termfreq(tags,'twitter'' 的第 27 位

我已经尝试将范围部分包装在额外的括号中,但仍然没有运气。如何将范围函数与其他查询参数结合起来?

4

3 回答 3

0

好的,我解决了我需要的问题。基本上,我从 Solr 管理仪表板运行命令。尽管我无法将frange上面的命令与 中的其他查询混合使用fq,但我能够将我的frange命令放入q并将其他查询保留在fq.

q: {!frange l=1 u=2}sum(termfreq(tags,'twitter'),termfreq(tags,'facebook'),termfreq(tags,'pinterest'))

fq: (region:"US") 

在这里回答了一个类似的问题。

我的问题已解决,但如果有人知道更好的方法,我会在几天内不回答这个问题。

于 2013-05-14T18:46:28.290 回答
0

请在此处查看我的答案:带有 OR 的嵌套功能范围查询

它使用查询solr 功能解决了这个问题。

于 2017-11-08T10:10:35.943 回答
-1

您还可以继续添加fq=参数,这被视为 AND,例如:

&fq={!frange l=1 u=2}sum(termfreq(tags,'twitter'),termfreq(tags,'facebook'),termfreq(tags,'pinterest'))&fq=region:"US"
于 2015-02-25T11:32:11.397 回答