【问题标题】:Solr Block Join Parent Query Parser range query search errorSolr Block Join Parent Query Parser range 查询搜索错误
【发布时间】:2016-07-25 15:57:41
【问题描述】:

我正在使用 Solr 6.1.0,并且正在将父子数据索引到 Solr。

当我进行查询时,我使用 Block Join Parent Query Parser,只返回父记录,而不返回任何子记录,即使子记录中可能存在匹配项。

但是,我无法对子记录进行范围查询。例如,如果我使用此查询进行搜索 q= +title:join +{!parent which="content_type:parentDocument"}range_f:[2 TO 8]

我会得到以下错误:

{ 
  "responseHeader":{
    "zkConnected":true,
    "status":400,
    "QTime":3},
  "error":{
    "metadata":[
      "error-class","org.apache.solr.common.SolrException",
      "root-error-class","org.apache.solr.parser.ParseException"],
    "msg":"org.apache.solr.search.SyntaxError: Cannot parse 'range_f:[2': Encountered \"<EOF>\" at line 1, column 18.\r\nWas expecting one of:\r\n    \"TO\" ...\r\n    <RANGE_QUOTED> ...\r\n    <RANGE_GOOP> ...\r\n    ",
    "code":400}}

这可能是什么问题?

问候,
埃德温

【问题讨论】:

  • 在多个条件下使用 OR 连接时,我也面临同样的问题
  • 你找到解决办法了吗
  • @Sai 你呢,你找到解决办法了吗? :)
  • @eglasius,我很好。没有没有找到任何解决方案
  • @Sai 发布了一个答案,我们找到了可行的方法

标签: solr


【解决方案1】:

尝试:

q= +title:join +_query:"{!parent which=\"content_type:parentDocument\"}range_f:[2 TO 8]"

【讨论】:

  • 我认为你的意思是+_query_ 也要注意结尾的下划线
【解决方案2】:

在连接查询之前不能有任何空格,这样可以工作

{!parent which="content_type:parentDocument"}range_f:[2 TO 8]

解决此问题的一种方法是将范围查询移动到 fq 参数而不是 q 参数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-26
    • 1970-01-01
    • 1970-01-01
    • 2018-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多