|
Форум
|
Александр |
19.02.08, 18:58 |
|
Сложносоставные слова с дефисом |
|
Здравствуйте!
При поиске сложносоставных слов с дефисом почему-то в результатах поиска фигурируют другие слова.
Например, ищу слово "организационно-экономические". В результатах поиска есть и "организационно-экономические" и "организационно-технические" и "организационно-методические".
В общем, находятся документы, имеющие сложносоставные слова, в начале которых имеется "организационно", но я же ясно указал искать только "организационно-экономические".
Вы не могли бы объяснить в чем причина?
P.S. Поиск произвожу, предварительно выбрав нормальную форму слова. В приведенном случае скармливаю contains "организационно-экономическ". |
|
|
Алексей Дмитровский |
21.02.08, 13:49 |
|
re: Сложносоставные слова с дефисом |
|
Добрый день, Александр!
Пожалуйста, воспроизведите точно проблемный запрос. |
|
|
Александр |
21.02.08, 17:41 |
|
re: re: Сложносоставные слова с дефисом |
|
>Добрый день, Александр! > >Пожалуйста, воспроизведите точно проблемный запрос.
Здравствуйте!
Сначала select rco_context.get_normal_form( 'Организационно-экономические', 'setting' ) from dual;
Потом результат нормализации подставляется в поисковый запрос, например: select * from table where contains( value, 'организационно-экономическ' ) > 0;
Выбираются документы, содержащие слова, перечисленные в первом моем сообщении. |
|
|
Александр |
21.02.08, 17:47 |
|
re: re: re: Сложносоставные слова с дефисом |
|
Ввел в заблуждение. Прошу прощения.
Нормализация выдала "организационно-экономический", но суть это не меняет - результат поиска тот же.
Версия RCO: RCO 410(191206) for Linux, Oracle Enterprise Edition |
|
|
Алексей Дмитровский |
27.02.08, 15:25 |
|
re: re: re: re: Сложносоставные слова с дефисом |
|
Добрый день, Александр!
В Вашем случае дефис воспринимается как оператор MINUS языка запросов Oracle Text. Можно использовать escape символ '\' перед '-'
|
|
|
Александр |
27.02.08, 16:47 |
|
re: re: re: re: re: Сложносоставные слова с дефисом |
|
>Добрый день, Александр! > >В Вашем случае дефис воспринимается как оператор MINUS языка запросов Oracle Text. >Можно использовать escape символ '\' перед '-' >
Спасибо за ответ. Я это предполагал. Но есть такой вопрос на засыпку.
В документе имеется такая строка (без кавычек): "Организационно-экономические исследования применения противогрибковых лекарственных средств для лечения микозов верхних дыхательных путей: (На примере Самар. обл)"
Следующий запрос НЕ находит этот документ: SELECT id FROM table WHERE CONTAINS( VALUE, 'организационно\-экономический and исследование and применение and противогрибковый and лекарственный and средство and лечение and микоз and верхний and дыхательный and путь and (на пример самар обл)' ) > 0;
Если из текста запроса убрать часть строки "организационно\-экономический and ", то документ прекрасно находится.
Странно, не правда ли? |
|
|
Плешко Владимир |
04.03.08, 12:35 |
|
re: re: re: re: re: re: Сложносоставные слова с дефисом |
|
Вопрос действительно на засыпку. Для ответа на него просто недостаточно информации - мы не знаем, как вы создали индекс.
Все слова запроса у вас лемматизированы. Вы приводите фрагмент текста со словами в различных формах, который по умолчанию не должен находиться - разве что в тексте встречались слова этого предложения в исходных формах. Попробуйте на проблемном тексте вызвать ctx_doc.filter и посмотрите, что получилось, в частности в дефисными словами. |
|
|
|
|
|
| |