Solr父子查询

时间:2017-12-07 01:45:59

标签: solr

我正在尝试根据父级中的条件查询solr文档。

Documentation: BlockJoinQueryParsers指示使用如下查询:

q= +title:join +{!parent which="content_type:parentDocument"}comments:SolrCloud

其中title是父级字段,comments是子级字段。 像这样的查询工作正常。但是,我不能在孩子身上添加任何其他条件。无论我在'}'之后尝试放置什么语句,它都会因SyntaxError而失败。例如

q= +title:join +{!parent which="content_type:parentDocument"}(comments:SolrCloud AND id:4)

因SyntaxError而失败。

我想我可以通过使用fq参数来使用解决方法,但我想知道是否可以在一个查询中实现。

P.S。我使用的是Solr 6.6,可以考虑升级到版本7.

1 个答案:

答案 0 :(得分:1)

您需要使用local parameters,基本上您的查询等于

q= +title:join +{!parent which="content_type:parentDocument" v='comments:SolrCloud'}

可以进一步改写:

q= +title:join +{!parent which="content_type:parentDocument" v=$qq}&qq=+comments:SolrCloud +whatever:ClauseYouWant