2012-02-02 51 views
3

我搜索了一下關於在Apache德比不區分大小寫的搜索。所有谷歌的結果都很舊(2007年最新)。我發現不可能在不丟失索引的情況下搜索不區分大小寫(「LOWER」不使用索引)。阿帕奇德比 - 案例(中)靈敏度

這是真的嗎?或者有沒有辦法在索引varchar/text列上獲得不區分大小寫的搜索?提前

回答

3

THX看一看collation

你可以使用TERRITORY_BASED:創建連接時SECONDARY`,這是我能夠做到這一點的唯一方法:

TERRITORY_BASED:SECONDARY:基於整理強度的區域SECONDARY
SECONDARY通常意味着基本字母或重音的差異被認爲是重要的 ,而案例的差異不被視爲 顯着。

實施例: https://issues.apache.org/jira/browse/DERBY-455

另一種可能性是存儲在一個較低的情況下列中的相同的值:

jdbc:derby:MexicanDB;create=true;collation=TERRITORY_BASED:SECONDARY 

顯然,它不可能在德比成在功能上創建索引並在其中搜索。

+1

thx我也發現這個http://stackoverflow.com/questions/6084000/case-insensitive-search-in-java-db-derby – dermoritz 2012-02-02 10:53:45

+0

很好,有一個答案提到:http://blogs.oracle.com/kah/entry/derby_10_5_preview_generated使用生成的列,這對我最後一項提議 – oers 2012-02-02 11:02:32

+0

有用,但您的建議不那麼侵入 - 目前爲我的更好選擇。 – dermoritz 2012-02-02 11:22:02