ドイツ語の姓「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" が機能するのかはまだ明らかではありません。
何か案は?
編集
上記のように機能しない姓がはるかに多いことがわかりました。そして、私はまだこれについて可能な説明を見ていません...