2015-08-25 92 views
2

我有一個多值域。內容看起來是這樣的文本域中的Solr範圍查詢

multi_field:"type:type1; YEAR:2008" 

我希望能夠根據YEAR子串進行範圍請求。我無法理解我是否可以執行這種範圍查詢。我想有這樣的事情。 q=multi_field:"type:type1;*" AND multi_field:"*YEARS:[2005 TO 2010]*"

這可能嗎?我知道它看起來很可怕。但有什麼辦法可以得到它嗎?

+0

檢查這些http://stackoverflow.com/questions/17648021/solr-multivalued-date-range-from-two-separate-field-as-sub-eity http://stackoverflow.com/questions/8089947/solr-and-query-over-multiple-fields –

+0

謝謝你的迴應。但在這些鏈接中我看到他們有不同的領域。但我有一個(字符串)的兩個值。它完全不同。我告訴在我的情況「type:type1; YEAR:2008」是一個字符串字段 –

回答

3

不,這是不可能的(至少沒有很多編碼)。最簡單的方法應該是修復索引代碼以將字段拆分爲兩個單獨的字段。如果您需要保留原始的multi_field(例如,用於處理搜索結果),請創建兩個新字段(例如multi_field_part1multi_field_part2),對新字段(q=multi_field_part1:type1 AND multi_field_part2:[2005 TO 2010])執行搜索,但在結果中使用舊字段。

+0

謝謝)只需要另一個人的確認,以顯示給我的老闆。 –

+0

對於多值字段,我認爲分割不會有幫助 - 您無法繞過編碼的海量地帶,海事組織。假設您有一個文檔的值「type:one; YEAR:2011」和「type:two; YEAR:2004」。拆分將在第1部分中添加「type:one」和「type:two」,在第2部分中添加「2004」和「2011」。搜索part1:「type:one *」AND part2:[「* YEAR:2000」TO 「* YEAR:2005」]會找到你的文件,即使它不應該。但也許我錯過了一些東西。 – user625488