|
|
|
| У меня вопрос скорее всего не по программированию по PHP, а по теории алгоритма. Есть словарь словоформ. Причем этот словарь знает еще и про части речи (существительное, прилагательное и т.д.).
Искать буду с помощью FULLTEXT. Так вот. Если пользователь вводит одно поисковое слово, поиск производится по этому слову и его словоформам. Тут все просто.
А вот если пользователь вводит два слова и более, то это довольно-таки накладно (да и не нужно) - в смысле использовать все словоформы каждого слова в словосочетании.
Хочу сделать так:
Если ввели "синяя краска", то ищем сначала непосредственно синюю краску, потом определяем есть ли прилагательное и отбрасываем его => ищем только краску.
Т.е. бОльший вес даем существительному.
Как такая идея? В общем поставлю корректней вопрос: насколько максимально эффективно использовать базу словоформ данным алгоритмом?
И второй вопрос:
Что делать со словами, длина которых 3 и меньше. Просто их отбрасывать?
P.S. Я понимаю, что поиск нужен пользователям, и они должны сами думать как им составлять запрос, но я рассчитываю не на таких пользователей, а на совсем ленивых. | |
|
|
|
|
|
|
|
для: spiner
(04.04.2006 в 12:19)
| | Если вы используете полнотекстовый поиск в логическом режиме, то вам достаточно сразу отбросить суффиксы всех слов и искать словосочетание "син* краск*" - такое выражение найдёт все соответствия.
И второй вопрос:
Что делать со словами, длина которых 3 и меньше. Просто их отбрасывать?
MySQL сама их отбросит, если искать будете целой фразой. | |
|
|
|