0

solrクエリについて、2つの複数値フィールドがあるという質問が1つあります。フローそれはスキーマの一部です:

<field name="attribute" type="text" indexed="true" stored="true" multiValued="true"/>
<field name="locale" type="text" indexed="true" stored="true" multiValued="true"/>

xmlからデータを読み取ります。

  <docs>
    <doc>
        <id>01000</id>
        <name>product1</name>
        <price>102.5</price>        
        <attributes name="description">
          <str attribute="this is english description" locale="en_US" />
          <str attribute="this is chinese description" locale="zh_CN" />
        </attributes>
    </doc>
  </docs>

問題は、「q = attribute:english AND locale:en_US」または「q = attribute:english AND locale:zh_CN」のいずれかのクエリ条件がこのドキュメントを返す可能性があることです。

条件が「q=attribute:englishAND locale:en_US」または「q = attribute:chinese AND locale:zh_CN」でドキュメントを返すことができる場合にのみ希望しますが、どうすればよいですか?

ありがとうございました!

4

1 に答える 1

1

Christian Lendel が提案したオプションはうまくいくでしょう。もう1 つのオプションは、属性ロケールのオプションを結合し、それを 1 つの文字列としてインデックス化することです: "en_US this is English description". 次に、次のようなクエリを実行できます。

q=attribute:(english en_US)

解決策は、何を達成したいかによって、さらに単純または複雑になる場合があります。

于 2012-09-12T11:23:41.807 に答える