我正在尝试根据父级和中的条件查询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.
答案 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