2014-01-15 76 views
0

我正在使用SolR 3.5。與combinaison SolR查詢/字段關係

我的數據都是這樣的:

<doc> 
    <arr name="myField"> 
    <str>10_SizeA</str> 
    <str>15_SizeB</str> 
    <str>30_SizeA</str> 
    </arr> 
</doc> 

(數據的結構,可以在必要時修改,但需要在1個文件節點保持分組)。

這意味着我有1種產品與價格= 10,大小= SIZEA,一個其他同價位= 15,...

我希望能夠,如果我查詢的價格來回報我的文檔> = 15 AND a Size = sizeA。 但是,如果看一個價格> = 30和大小= sizeB,我不想找到它。

有沒有辦法做到這一點?

編輯: 爲了更好的理解,讓我解釋所有這些值之間的關係。 這是我的產品。 多值字段「myField」中的每個字段都是有關項目的信息。 Price_Size 因此,每條線都是「鏈接的」,並且必須保持相關。

但是,如果有辦法保持與其他結構的關係,請繼續建議。

謝謝閱讀, Dekx

回答

0

你可以有一個充滿活力的領域與

<field name="prices" type="float" indexed="true" stored="true" multiValued="false"/> 
<dynamicField name="price_*" type="float" indexed="true" stored="true" multiValued="true"/> 
<copyField source="price_*" dest="prices"/> 

<doc> 
    <str name="price_A">10</str> 
    <str name="price_B">15</str> 
    <str name="price_C">30</str> 
    <arr name="prices"> 
     <str>10</str> 
     <str>15</str> 
     <str>30</str> 
    </arr> 
</doc> 
0

按我的理解,你有一個產品(比如ABC)。的價格和尺寸之間的關係是一樣

10> SIZEA

15> SizeB

30> SIZEA

代替保持每個文件針對產品,爲什麼不你保存多個Solr文檔嗎? 讓我們有一個產品ID或什麼的。不要在Solr中有一個文檔,而要有3個文檔。

產品編號:1產品名稱:ABC尺寸:SIZEA價:10

產品編號:2產品名稱:ABC尺寸:Sizeb價:15

產品編號:3產品名:ABC尺寸:SIZEA價:30

現在您的查詢「price> = 15 AND a Size = sizeA」將返回匹配的文檔。

+0

這是我的問題。我不能有多個文件。 :( – Dekx