我有一组索引的文档,它们具有伪父子关系。每个子文档都有对父文档的引用。由于某些可用性的复杂性,这些文档没有被索引以支持块连接,即它们不是嵌套结构,而是完全平坦。这是一个例子:
<doc>
<field name="id">1</field>
<field name="title">Parent title</field>
<field name="doc_id">123</field>
</doc>
<doc>
<field name="id">2</field>
<field name="title">Child title1</field>
<field name="parent_doc_id">123</field>
</doc>
<doc>
<field name="id">3</field>
<field name="title">Child title2</field>
<field name="parent_doc_id">123</field>
</doc>
<doc>
<field name="id">4</field>
<field name="title">Misc title2</field>
</doc>
我正在寻找的是如果我搜索“title2”,结果应该带回以下两个文档,1个匹配父级,1个基于常规匹配。
<doc>
<field name="id">1</field>
<field name="title">Parent title</field>
<field name="doc_id">123</field>
</doc>
<doc>
<field name="id">4</field>
<field name="title">Misc title2</field>
</doc>
使用块连接支持,我可以使用Block Join Parent Query Parser,
q={!parent which="content_type:parentDocument"}title:title2
转换结果文档是另一种选择,但它通过ChildDocTransformerFactory
提供反向支持。
只是想知道是否有办法以不同的方式解决查询问题。任何指针都将受到赞赏。