2013-05-07 116 views
2

我有一個古怪的Solr多值域,我似乎可以重複複製。查詢Solr多值域使用範圍

我有一套titles其中有一個域名爲special_offer_type。此字段的類型爲:

[ 
    "5", 
    "3", 
    "0" 
] 

查詢工作正常,如果我做的:

special_offer_type:4 

,我得到5個結果反饋,但是,如果我這樣做:

special_offer_type:[3 TO *] 

我得到只有兩個結果返回。

似乎Solr正在處理多值域的範圍,因爲該範圍必須滿足該域中的所有值。

我無法在文檔中找到對此的直接引用,所以我的問題是這種行爲是否可以預料?

+2

什麼是special_offer_type的字段類型?必須是int來支持數字範圍查詢 – Jayendra 2013-05-07 11:34:38

+0

@Jayendra它是類型的字符串,如問題所示,我確實改變了它,這部分工作,如果你想發佈作爲答案我會標記它 – Sammaye 2013-05-08 07:08:58

+0

當然..添加爲一個回答。 – Jayendra 2013-05-08 08:07:09

回答

1

嘗試使用Int字段類型來支持正確的整數範圍查詢

另請檢查sint vs integer。

Documentation: -

可排序域類型像燒結靶,sdouble是有點用詞不當。在上述意義上,它們不需要排序,但在執行RangeQuery查詢時需要 。實際上,Sortables參考 這個概念,使得按字典順序將數字排序爲 字符串。也就是說,如果沒有這樣做,數字1..10將 按字典順序排列爲1,10,2,3 ...使用sint,但是補救措施 這個。但是,如果您不需要執行RangeQuery查詢,並且只有 需要在該字段上進行排序,則只需使用int或double或 等效適當的類。你將節省自己的時間和記憶。