2012-09-12 62 views
0

我有一個關於solr查詢的問題,它有兩個多值字段。 Fllow它是架構的一部分:查詢solr中的兩個多值字段

<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 =屬性:英語和語言環境:EN_US」 或「Q =屬性:英文和區域設置:zh_CN「可以返回此文檔。

我希望只有當條件是「q = attribute:english AND locale:en_US」或「q = attribute:chinese AND locale:zh_CN」才能返回文檔,我該怎麼辦?

謝謝!

+1

我不認爲你可以用多值字段做到這一點。我想你需要分開你的問題的領域 –

回答

1

基督教Lendel建議將工作的選項,其他選項將加入屬性區域期權和指數它作爲一個字符串:「EN_US這是英文說明」。 然後你就可以查詢就是這樣:

q=attribute:(english en_US) 

解決方案可能是更簡單或更復雜,取決於你想要達到的目標。