私はSolr 5.4.0を使用しています。私は、ネストされた文書で、いくつかの単純なデータをインポートしました:子ドキュメントのフィルタリング時にSolrが不正な結果を返す
<doc>
<field name="id">d1</field>
<field name="content_type">parent_document</field>
<doc>
<field name="id">d2</field>
<field name="content_type">related_parent</field>
</doc>
</doc>
<doc>
<field name="id">d3</field>
<field name="content_type">parent</field>
<doc>
<field name="id">d4</field>
<field name="content_type">related_parent</field>
</doc>
</doc>
<doc>
<field name="id">d5</field>
<field name="content_type">parent</field>
<doc>
<field name="id">d2</field>
<field name="content_type">related_parent</field>
</doc>
</doc>
フィールドの定義は以下のとおりです。
<field name="id" type="string" multiValued="false" indexed="true" required="true" stored="true"/>
<field name="content_type" type="lowercase" omitTermFreqAndPositions="true" multiValued="false" indexed="true" required="true" stored="true"/>
<fieldType name="lowercase" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
は、私が子供の文書としてD2を持っているすべての文書を見つける必要があります。 私は、クエリ使用:
q={!parent which=content_type:parent}id:d2
を私は、結果としてD5を期待するが、代わりに私が手:
"response": {
"numFound": 1,
"start": 0,
"docs": [
{
"id": "d3",
"content_type": "parent",
"_version_": 1531507509621162000,
"_root_": "d3"
},
{
"id": "d5",
"content_type": "parent",
"_version_": 1531507848756854800,
"_root_": "d5"
}
]
}
D3は、ここで返されるのはなぜ? d3をフィルタリングするためにこのクエリにどのような条件を追加する必要がありますか?私はここで起こって二つのものを参照することができます
あなたはそれが起こった理由を知りましたか?私は6.6でも似たようなことを見ましたが、私たちの場合、私たちはバイブラのキャプチャを行い、すべてが正しいと見ましたが、少なくとも100のドキュメントのうちの1つがこの問題の影響を受けました。 – eglasius