我对一个德国姓氏“Warsoenke”有一种奇怪的行为。
看一下这个:
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)。
对于其他姓氏,它完美而清晰。但是对于这个...
我猜这是因为德国的数据库设置,例如“War so e...”,但这个想法很奇怪,仍然不清楚为什么“Warsoen”会起作用。
有任何想法吗?
编辑
我发现更多的姓氏不像上面描述的那样工作。而且我仍然没有看到任何可能的解释......