2016-10-31 5 views
0

私はSolr 6.2.1をネストされたドキュメントで使用していて、Block Join Children Query Parserの特定のタイプの親ドキュメントをすべて取得しようとしましたが、次のエラー:Solr Block Join ChildrenクエリParserに親以外のドキュメントと一致するクエリ

Parent query yields document which is not matched by parents filter

マイドキュメントに似ています:

<add> 
    <doc> 
    <field name="id">1</field> 
    <field name="type">MYDOCTYPE</field> 
    <field name="isParent">true</field> 
    <doc> 
     <field name="id">1_1</field> 
     <field name="comments">some comments</field> 
    </doc> 
    <doc> 
     <field name="id">1_2</field> 
     <field name="comments">some more comments</field> 
    </doc> 
    </doc> 
    <doc> 
    <field name="id">2</field> 
    <field name="type">MYDOCTYPE</field> 
    <field name="isParent">true</field> 
    <doc> 
     <field name="id">2_1</field> 
     <field name="comments">some comments</field> 
    </doc> 
    <doc> 
     <field name="id">2_2</field> 
     <field name="comments">some more comments</field> 
    </doc> 
    </doc> 
    <doc> 
    <field name="id">3</field> 
    <field name="type">MYDOCTYPE</field> 
    </doc> 
</add> 

そして、私はそれらを照会しようとしている:q={!child of="isParent:true"}type:MYDOCTYPE

私は、ドキュメント3はタイプMYDOCTYPEを持っていますが、親ドキュメントではないということは、子ドキュメントを持たないので意味がないと思います。

ドキュメント3にフィールドisParentを追加せずにすべての子ドキュメントを取得する方法はありますか?

答えて

1

私は回避策を発見し、そのクエリを作ることです。

{!child of="isParent:true"}type:"EDH/MAG"+isParent:true

このようクエリの2番目の部分は唯一のDOC 1及び2に一致し、例外をスローしませんが。

関連する問題