У меня есть простая таблица index_search, созданная как:
BEGIN
ctx_ddl.create_preference('my_pref', 'BASIC_WORDLIST');
ctx_ddl.set_attribute('my_pref', 'SUBSTRING_INDEX', 'YES');
ctx_ddl.set_attribute('my_pref', 'wildcard_maxterms', 0);
END;
/
CREATE TABLE my_index_search (search_tokens VARCHAR2(100));
CREATE INDEX my_index_search_ctx_idx01 ON
my_index_search (
search_tokens
)
INDEXTYPE IS ctxsys.context PARAMETERS ( 'Wordlist my_pref SYNC(ON COMMIT)' );
INSERT INTO my_index_search
VALUES('A ABC/45/464587');
COMMIT;
Мой текстовый запрос использует оператор содержимого, и когда я ищу строку ' ABC / 45/464587 ', возвращается строка:
SELECT *
FROM my_index_search i
WHERE contains ( search_tokens, '%ABC/45/464587%', 1 ) > 0;
Но когда я ищу строку ' A ABC / 45/464587 ', строка не выглядит так:
SELECT *
FROM my_index_search i
WHERE contains ( search_tokens, '%A ABC/45/464587%', 1 ) > 0;
Почему, когда я добавляю в строку полного поиска, содержащую один символ (в данном случае 'A'), поиск не возвращает строку?
Заранее спасибо за любую помощь.
Duncs