【问题标题】:Solr parent-child querySolr 父子查询
【发布时间】:2017-12-08 01:05:07
【问题描述】:

我正在尝试根据父子中的条件查询 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 参数来使用一种解决方法,但我想知道是否可以在一个查询中实现。

附:我用的是Solr 6.6,可以考虑升级到版本7。

【问题讨论】:

  • 您使用的是哪个版本的 Solr?

标签: solr


【解决方案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

【讨论】:

  • 谢谢,v-parameter 工作,我可以提供复杂的参数集。但是,“qq”参数引用仍然失败并显示“未定义字段”消息。
  • 架构中的字段是否具有您想要获取的名称?
  • 是的,我有。值得注意的是,即使是带有“qq”的最简单查询也会失败,而使用“v”参数的复杂查询则可以正常工作。
猜你喜欢
  • 2012-05-18
  • 2016-08-10
  • 1970-01-01
  • 1970-01-01
  • 2022-06-29
  • 2010-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多