【问题标题】:Mixing Solr range function with additional parameters将 Solr 范围函数与附加参数混合
【发布时间】:2013-05-14 13:53:27
【问题描述】:

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

{!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 27 in 'sum(termfreq(tags,'twitter'''

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

【问题讨论】:

    标签: java solr


    【解决方案1】:

    好的,我已经解决了我需要的问题。基本上,我从 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") 
    

    我回复了similar question here.

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

    【讨论】:

      【解决方案2】:

      请在此处查看我的答案:Nested functional range query with OR

      使用 query solr 功能解决了这个问题。

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          猜你喜欢
          • 2013-11-29
          • 1970-01-01
          • 2016-10-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-08-21
          • 1970-01-01
          相关资源
          最近更新 更多