У меня проблема с текстом Oracle. Я ищу так:
WHERE
( contains(description_en, '%to_search.%', 1) > 0 );
Теперь Oracle возвращает мне строку, где есть «to_search», но без точки. Я подозреваю, что это потому, что Oracle обрабатывает это как разрыв слов (Примечание: Стоплист пуст)
Но если я попытаюсь выделить найденный результат с помощью вызова ctx_doc.markup
:
ctx_doc.markup(
index_name => 'i_fil_lis_ce_fil_des_en',
textkey => '12238',
text_query => '%to_search.%',
starttag => '<result>',
endtag => '</result>',
plaintext => true)
Он не выделит to_search
, если я не уберу точку в text_key
. Это поведение то же самое для других символов, таких как ? / , / @
. Это не имеет смысла для меня, разве oracle не должны относиться к обоим случаям точки одинаково?
Я понимаю, что Oracle разбивает слово на точку и другие символы. Так что, если я ищу test
, он также находит test.
. Но почему наоборот? почему я должен найти test
, если я ищу test.
? и можно ли это отключить?
Версия: Oracle База данных 12 c Выпуск Enterprise Edition 12.1.0.2.0 - 64 бита