Question

I've got a strange behaviour on a German surname "Warsoenke".

Check this out:

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;

The output is:

Mister Warsoenke ABC-12  |  2  |  1

I cannot figure out why? If I type "Warsoe" or "War" it returns score 2. If I type "Warsoen" it works like, as I understand, it should and returns 1.

If I do not use definescore it works in the same direction, just shows different numbers (27 and 13).

For other surnames it works perfectly and clear. But for this one...

I had a guess this is because of German database settings, e.g. "War so e..." but this idea is quite strange and still it is not clear why "Warsoen" works then.

Any ideas?

EDIT

I've found out much more surnames which are not working like the described above. And I still do not see any possible explanation of this...

Was it helpful?

Solution

Just if somebody has the same problem, the problem was in setting of DEFAULT_LEXER:

BASE_LETTER        | YES
ALTERNATE_SPELLING | GERMAN

That's what we received after investigation:

To change the behaviour, either one of the two parameters have to be changed, or the additional parameter OVERRIDE_BASE_LETTER has to be set to true (according to docs).

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top