У меня странное поведение по немецкой фамилии «Варсоенке».Текст Oracle: странное поведение функции оценки
Проверьте это:
create table test_warsoe
as
select 'Mister Warsoenke ABC-12' name
from dual;
create index test_warsoe_index on test_warsoe(name) indextype is ctxsys.context;
select name,
score(1) as rating_warsoe,
score(2) as rating_warsoen
from test_warsoe
where contains(name,'definescore(Warsoe%,occurrence)',1) > 0
or contains(name,'definescore(Warsoen%,occurrence)',2) > 0;
Выход:
Mister Warsoenke ABC-12 | 2 | 1
Я не могу понять, почему? Если я набираю «Warsoe» или «War», он возвращает счет 2. Если я набираю «Warsoen», он работает, как я понимаю, он должен и возвращает 1.
Если я не использую definescore
, он работает в том же направление, просто показывает разные числа (27 и 13).
Для других фамилий это прекрасно и понятно. Но для этого ...
У меня догадалось, что это из-за настроек немецкой базы данных, например. «Война так ...», но эта идея довольно странная, и до сих пор неясно, почему «Warsoen» работает тогда.
Любые идеи?
EDIT
я узнал гораздо больше фамилий, которые не работают, как описано выше. И я до сих пор не вижу никаких возможных объяснений этого ...
Не могли бы вы разместить свое значение «NLS_LANG»? Я попытался с вашим DDL и Query, я получил его как 1 и 1 .. Вы можете видеть в [SQL Fiddle] (http://sqlfiddle.com/#!4/d31f4/1) –
NLS_LANGUAGE: GERMAN, версия DB: 11.2.0.2.0. Я вижу, он работает в sqlfiddle, но на моем сервере это не ... – smnbbrv