Я получаю странное поведение, используя Oracle Text. Я создал следующую таблицу:
CREATE TABLE TEST_OTEXT_TABLE (id NUMBER PRIMARY KEY, text VARCHAR2(200));
и заполнил таблицу следующими данными:
1 California is a state in the US.
2 Paris is a city in France.
3 France is in Europe.
4 Italy is a city in Europe.
Затем я создал индекс:
CREATE INDEX TEST_OTEXT_INDEX ON TEST_OTEXT_TABLE(text)
INDEXTYPE IS CTXSYS.CONTEXT
parameters ('DATASTORE CTXSYS.DEFAULT_DATASTORE');
EXEC CTX_DDL.SYNC_INDEX('TEST_OTEXT_INDEX', '2M');
Если я побегу
select id, score(1) from TEST_OTEXT_TABLE WHERE CONTAINS (text, 'is a city', 1) > 0 ;
все работает нормально, так как Oracle Text правильно возвращает
ID SCORE(1)
---------- ----------
2 4
4 4
Однако, если я бегу
select id, score(1) from TEST_OTEXT_TABLE WHERE CONTAINS (text, 'is a', 1) > 0 ;
он возвращается
no rows selected
вместо того, чтобы возвращать тот же результат.