2016-11-04 2 views
0

を照会します。 ここでItemはParent Docの一部であり、SizeはChild docの一部です。私はBlockJoinを使用することを考えましたが、同時に親と子の両方を照会する方法を理解することはできません。Solrには:COLOR_sとSIZE_s</strong>:ファセットを有するXL、:キャップとSize_s:すべての<strong>項目を取得するために5.5.3、Javaの7</p> <p>私がしている:Solrのを使用して、両方の親と子ドキュメント

助けと指導をいただければ幸いです。ありがとう。

<add> 
  <doc> 
    <field name="id">1</field> 
    <field name="type_s">forSaleItem</field> 
    <field name="item">Shirt</field> 
    <doc> 
      <field name="id">11</field> 
     <field name="type_s">itemAttrDoc</field> 
      <field name="COLOR_s">Red</field> 
      <field name="SIZE_s">XL</field> 
      <field name="PRICE_i">6</field> 
    </doc> 
    <doc> 
     <field name="type_s">itemAttrDoc</field> 
      <field name="id">12</field> 
      <field name="COLOR_s">Red</field> 
      <field name="SIZE_s">XL</field> 
      <field name="PRICE_i">7</field> 
    </doc> 
    <doc> 
     <field name="type_s">itemAttrDoc</field> 
      <field name="id">13</field> 
      <field name="COLOR_s">Blue</field> 
      <field name="SIZE_s">L</field> 
      <field name="PRICE_i">5</field> 
    </doc> 
  </doc> 
  <doc> 
    <field name="id">2</field> 
    <field name="type_s">forSaleItem</field> 
    <field name="item">Cap</field> 
    <doc> 
     <field name="type_s">itemAttrDoc</field> 
      <field name="id">21</field> 
      <field name="COLOR_s">Blue</field> 
      <field name="SIZE_s">XL</field> 
      <field name="PRICE_i">6</field> 
    </doc> 
    <doc> 
     <field name="type_s">itemAttrDoc</field> 
      <field name="id">22</field> 
      <field name="COLOR_s">Blue</field> 
      <field name="SIZE_s">XL</field> 
      <field name="PRICE_i">7</field> 
    </doc> 
    <doc> 
     <field name="type_s">itemAttrDoc</field> 
      <field name="id">23</field> 
      <field name="COLOR_s">Red</field> 
      <field name="SIZE_s">L</field> 
      <field name="PRICE_i">5</field> 
    </doc> 
  </doc> 
    <doc> 
    <field name="id">3</field> 
    <field name="type_s">NotforSaleItem</field> 
    <field name="item">trouser</field> 
    <doc> 
     <field name="type_s">itemAttrDoc</field> 
      <field name="id">21</field> 
      <field name="COLOR_s">Blue</field> 
      <field name="SIZE_s">XL</field> 
      <field name="PRICE_i">6</field> 
    </doc> 
    <doc> 
     <field name="type_s">itemAttrDoc</field> 
      <field name="id">22</field> 
      <field name="COLOR_s">Blue</field> 
      <field name="SIZE_s">XL</field> 
      <field name="PRICE_i">7</field> 
    </doc> 
    <doc> 
     <field name="type_s">itemAttrDoc</field> 
      <field name="id">23</field> 
      <field name="COLOR_s">Red</field> 
      <field name="SIZE_s">L</field> 
      <field name="PRICE_i">5</field> 
    </doc> 
  </doc> 
</add> 

編集: type_sは、ドキュメントを識別し、だから、任意のクエリは、このフィールドを含める必要があります。これはあなたが必要書類を与えるべき

q={!parent which="Item:Cap"}Size_s:XL&facet.field=SIZE_s&facet.field=COLOR_s&facet=on 

+0

あなたの質問に対する答えは、[Solr Block Join Parser Documentation](https://cwiki.apache.org/confluence/display/solr/Other+Parsers#OtherParsers-BlockJoinQueryParsers)にあります。 –

答えて

0

は、次のクエリを試してみてください。

私はSolr Block Join Parser Documentationyonik's Solr Nested Objects Tutorialを参考に使用しました。

+0

ありがとうございますあなたの応答のためのロット。 あなたが提供した正確なクエリを書いているかどうか、私は同じリンク参照を参照しています。 今、私はアイテムと** type_s **によって親のドキュメントを照会しなければならない、私の質問でそれを言及しないことをお詫びします、これは私が今対処しようとしているものです。 私は、より多くの親のフィールドを持っている可能性があります**と私は一致する必要があります**子のドキュメント。 私が見てきたように、あなたが言及した質問を繰り返すことができます。それを試して。 http://stackoverflow.com/questions/35003195/solr-block-join-parent-query-with-many-children-constraints –

関連する問題