Запрос на основе многостолбцовых индексов Oracle Text не возвращает строк - PullRequest
2 голосов
/ 02 декабря 2011

У меня есть MAH_KERESES_MV таблица с 3 столбцами OBJEKTUM_NEV, KERESES_SZOVEG_1, KERESES_SZOVEG_2.Я создаю следующий многостолбцовый индекс Oracle Text:

exec ctx_ddl.create_preference( 'MAH_SEARCH', 'MULTI_COLUMN_DATASTORE');
exec ctx_ddl.set_attribute('MAH_SEARCH', 'COLUMNS', 'OBJEKTUM_NEV, KERESES_SZOVEG_1, KERESES_SZOVEG_2');

create index MAX_KERES_CTX on MAH_KERESES_MV(OBJEKTUM_NEV)
  indextype is ctxsys.context
  parameters ('DATASTORE MAH_SEARCH');

Но запрос не возвращает никаких строк, хотя, если я сформулирую запрос с помощью оператора like, я получу ожидаемые результаты:1009 *

SELECT  id, OBJEKTUM_NEV 
FROM MAH_KERESES_MV
WHERE CONTAINS(OBJEKTUM_NEV, 'C')>0;

Может ли какое-нибудь тело помочь?ТИА,

Тамас

1 Ответ

0 голосов
/ 06 декабря 2011

На всякий случай, если какое-либо тело может быть заинтересовано позже, решение состояло в том, что вышеуказанное предложение CONTAINS фильтрует символ C как отдельную сущность (то есть слово). Правильное условие where было бы:

WHERE CONTAINS(OBJEKTUM_NEV, 'C%')>0;
...