【问题标题】:Solr - Combine Block Join Query and parent query with "OR"Solr - 将块连接查询和父查询与“或”结合起来
【发布时间】:2017-05-31 13:35:53
【问题描述】:

我正在使用 Solr 6.3 中的许多集合,它们可能相当通用。在其中一些中,我可能需要使用“OR”运算符对子字段和父字段进行单个查询。为了说明,假设我在 Solr 中索引了以下文档:

{id: doc1,
 type: parent,
 specs: spec1,
 NESTED_DOC_KEY:[
                 {id:child1, childspecs:spec1, type:child},
                 {id:child2, childspecs:spec2, type:child},
                ]},
 {id: doc2,
 type: parent,
 specs: spec2,
 NESTED_DOC_KEY:[
                 {id:child3, childspecs:spec3, type:child},
                ]},
 {id: doc3,
 type: parent,
 specs: spec3,
 NESTED_DOC_KEY:[
                 {id:child4, childspecs:spec4, type:child},
                ]},
 }

例如,我需要查找所有带有 specs:spec3 的文档或包含一个带有 childspecs:spec1 的孩子的文档。所以我希望找到 doc1 和 doc3。我尝试了以下查询语法,但它返回所有三个文档和 child1:

specs:spec3 OR {!parent which="type:parent"} childspecs:spec1

每个查询单独工作,因此我可以在 Solr 外部加入结果,但我想知道是否有办法在 Solr 中将其作为单个查询来执行。

【问题讨论】:

    标签: solr lucene


    【解决方案1】:

    发现我的问题,是“{!parent which="type:parent"}”和“childspecs:spec1”之间的“空格”。它可能被解释为两个不同的查询,这就是我获取所有父文档和子文档的原因。

    【讨论】:

      猜你喜欢
      • 2020-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-17
      相关资源
      最近更新 更多