【发布时间】: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 中将其作为单个查询来执行。
【问题讨论】: