Apache Derby — чувствительность к регистру

я немного погуглил о поиске без учета регистра в apache derby. все результаты Google очень старые (последние 2007 года). я обнаружил, что невозможно выполнять поиск без учета регистра без потери индекса («НИЖНИЙ» не использует индекс).

Это все еще правда? Или есть способ получить нечувствительный к регистру поиск по индексированным столбцам varchar/text?

спасибо заранее


person dermoritz    schedule 02.02.2012    source источник


Ответы (1)


Взгляните на сопоставление:

Вы можете использовать TERRITORY_BASED:SECONDARY` при создании соединителя, это был единственный способ добиться этого:

TERRITORY_BASED:SECONDARY: территория на основе силы сопоставления SECONDARY.
SECONDARY обычно означает, что различия в основных буквах или акцентах считаются существенными, тогда как различия в регистре не считаются значительными.

Пример:

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

По-видимому, в Дерби невозможно создать индекс для функции: https://issues.apache.org/jira/browse/DERBY-455

Другая возможность - сохранить то же значение в столбце нижнего регистра и выполнить поиск в нем.

person oers    schedule 02.02.2012
comment
Спасибо, я также нашел этот stackoverflow. ком/вопросы/6084000/ - person dermoritz; 02.02.2012
comment
отлично, в ответе упоминается: blogs.oracle.com/kah/entry/derby_10_5_preview_generated использовать сгенерированные столбцы, которые были бы полезны для моего последнего предложения - person oers; 02.02.2012
comment
но ваше предложение менее инвазивно - на данный момент лучший выбор для меня. - person dermoritz; 02.02.2012