|
Форум
|
Прохожий |
16.03.05, 11:45 |
|
RCO |
|
может ли RCO помочь в том, что бы при поиске буквы "е" и "ё" воспринимались как одна. Т.е. если при поиске пользователь ввел слово "елка" нашлись и "елка" и "ёлка".
|
|
|
Плешко Владимир |
16.03.05, 12:10 |
|
re: RCO |
|
Морфоанализатор RCO всегда заменяет "Ё" на "Е". Так что с формированием запроса у вас проблем быть не должно. При индексировании текста у OracleText есть атрибут base_letter лексера BASIC_LEXER, о котором говорится в документации следующее:
Specify whether characters that have diacritical marks (umlauts, cedillas, acute accents, and so on) are converted to their base form before being stored in the Text index. The default is NO (base-letter conversion disabled).
Однако этот атрибут почему-то не работает для русского языка (по крайней мере, так было в наших экспериментах).
Теоретически есть два варианта решения проблемы:
1. Если вы собираетесь расширять запрос словоформами, т.е. индексировать текст как есть, то нужно использовать USER_DATASTORE и в процедуре руками менять "Ё" на "Е". Тогда OracleText не увидит буквы "Ё" независимо от того, что хранится в таблице.
2. Если вы собираетесь использовать фильтр RCO и лемматизировать слова запроса, то ничего дополнительно делать не нужно. Однако в этом случае вы будете всегда искать с учетом словоформ и не сможете искать слова, как они указаны в тексте.
|
|
|
|
|
|
| |