Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: вопрос по поиску со словоформами
 
 автор: spiner   (04.04.2006 в 12:19)   письмо автору
 
 

У меня вопрос скорее всего не по программированию по PHP, а по теории алгоритма. Есть словарь словоформ. Причем этот словарь знает еще и про части речи (существительное, прилагательное и т.д.).
Искать буду с помощью FULLTEXT. Так вот. Если пользователь вводит одно поисковое слово, поиск производится по этому слову и его словоформам. Тут все просто.
А вот если пользователь вводит два слова и более, то это довольно-таки накладно (да и не нужно) - в смысле использовать все словоформы каждого слова в словосочетании.
Хочу сделать так:
Если ввели "синяя краска", то ищем сначала непосредственно синюю краску, потом определяем есть ли прилагательное и отбрасываем его => ищем только краску.
Т.е. бОльший вес даем существительному.
Как такая идея? В общем поставлю корректней вопрос: насколько максимально эффективно использовать базу словоформ данным алгоритмом?

И второй вопрос:
Что делать со словами, длина которых 3 и меньше. Просто их отбрасывать?

P.S. Я понимаю, что поиск нужен пользователям, и они должны сами думать как им составлять запрос, но я рассчитываю не на таких пользователей, а на совсем ленивых.

   
 
 автор: cheops   (04.04.2006 в 13:13)   письмо автору
 
   для: spiner   (04.04.2006 в 12:19)
 

Если вы используете полнотекстовый поиск в логическом режиме, то вам достаточно сразу отбросить суффиксы всех слов и искать словосочетание "син* краск*" - такое выражение найдёт все соответствия.

И второй вопрос:
Что делать со словами, длина которых 3 и меньше. Просто их отбрасывать?
MySQL сама их отбросит, если искать будете целой фразой.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования