Как установить предпочтения в индексе текстового поиска, чтобы включить подстроку персидского текста
Чтобы иметь возможность использовать поиск по подстроке в индексации текстового поиска, я использовал следующие настройки, но это не работает для персидских текстов, вместо этого поиск по английскому тексту работает отлично.
Создать предпочтение:
begin
ctx_ddl.create_preference('a_lex', 'AUTO_LEXER');
end;
begin
ctx_ddl.create_preference('mywordlist', 'BASIC_WORDLIST');
ctx_ddl.set_attribute('mywordlist','PREFIX_INDEX','YES');
ctx_ddl.set_attribute('mywordlist','PREFIX_MIN_LENGTH',1);
ctx_ddl.set_attribute('mywordlist','SUBSTRING_INDEX', 'YES');
ctx_ddl.set_attribute('mywordlist','FUZZY_MATCH','AUTO');
ctx_ddl.set_attribute('mywordlist','FUZZY_SCORE','1');
ctx_ddl.set_attribute('mywordlist','FUZZY_NUMRESULTS','5000');
ctx_ddl.set_attribute('mywordlist','STEMMER','AUTO');
end;
Индексирование запроса:
create index test on myTable(name)
indextype is ctxsys.context online
parameters (
'SYNC (on commit)
LEXER a_lex
MEMORY 200M
Wordlist mywordlist
') parallel 4;
Заполненные данные: myTable { id: 1, Name: رفتن }
select name from myTable where contains(name,'%رفت%')>0