2016-10-18 77 views
4

是否有人知道是否可以將數字範圍(如「1-5」)的索引過濾爲「1」,「2」,「3」,「4」,「5」?我找不到任何這樣做的過濾器工廠。索引Solr中的數字範圍

例: 「1-5 ABC」 被收錄爲 「1 ABC」, 「2 ABC」, 「3 ABC」, 「4 ABC」, 「5 ABC」

+0

你能澄清你到底在做什麼嗎?試圖讓我的頭在你的問題。您是否正在根據ID中的範圍過濾搜索結果? –

+0

@LeftyGBalogh按搜索結果過濾很容易,但我需要的是擁有一個過濾器工廠,它將我的文檔「1-5 A」索引爲「1 A」,「2 A」,「3 A」, 「4A」,「5A」,所以當我搜索「3A」時,我得到文件「1-5A」的結果, – GucciProgrammer

回答

1

你想要可以實現什麼當然,但它可能並不簡單。

可能在分析鏈中使用 PatternReplaceFilter而無需編寫java代碼就可以做到這一點。我的正則表達式的專業知識是非常基礎的,所以我無法確定它是否可行......您的正則表達式應該能夠匹配並捕獲'1-3'類型的標記,然後將其替換爲'1 ','2','3'。但我懷疑這是可能的,因爲你需要爲每個匹配發出幾個令牌......

實現這一點的確定方法是編寫你的自定義filterfactory類,並在那裏處理邏輯。這是可能的,但需要Java專業知識。