![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
artlayers |
|
|||
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 30.10.2007 Репутация: нет Всего: нет |
Есть самописный движок, необходимо организовать поиск по БД (mysql), по двум полям - русское название и название на английском языке. При всем этом вариант типа
совсем не подходит. Нужен поиск умнее, который может учитывать частичные совпадения и ранжировать соответственно результаты. Например, неграмотный пользователь пишет запрос: "велосепед" такого слова в БД нет, соответственно при поиске влоб пользователь получит ответ, что ничего не найдено. Но слово "велосипед" в БД есть и даже при неправильном запросе, но близком к этому слову пользователь должен получить релевантный результат. Кроме того, необходимо учитывать разные словоформы одного слова. Подскажите готовые решения или пути. Спасибо. Это сообщение отредактировал(а) artlayers - 10.8.2011, 10:23 |
|||
|
||||
Wolf1994 |
|
||||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 5.10.2004 Репутация: нет Всего: 29 |
Будет работать, если удалить все возможные окончания слова. Быстрее и качественнее сделать ранжирование скриптом: можно использовать сложные алгоритмы, нагрузка же при обработке небольшого количества данных (до 50 строк больше, чем достаточно для хорошего поиска) будет минимальной.
Можно создать дополнительное поле в БД, которое будет содержать слово только из согласных букв. При выборке также указывать такое слово - почти все ошибки (обычно в гласных) не будут оказывать влияния на поиск. |
||||
|
|||||
jsa |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 704 Регистрация: 19.1.2006 Где: Новосибирск Репутация: нет Всего: 20 |
artlayers, посмотри на sphinx
-------------------- Все мы, на перине с песней, строим небо на земле © Ю. Шевчук |
|||
|
||||
makklovskiy |
|
|||
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 14.1.2010 Репутация: -1 Всего: -2 |
для того чтобы поиск был умнее надо будет забивать в базу словари и сравнивать у кредитора к примеру есть опция проверить на орфографию, и маленький совет, пользуйся функцией msql_real_escape_string();
|
|||
|
||||
Absinthe |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 526 Регистрация: 4.5.2011 Репутация: 1 Всего: 11 |
makklovskiy, ты вообще читаешь то, что комментируешь?
|
|||
|
||||
MuToGeN |
|
|||
![]() Лесник ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4379 Регистрация: 15.8.2002 Где: Москва Репутация: 4 Всего: 32 |
Помню, когда-то http://www.mnogosearch.org/ пользовал.
-------------------- Three pings for the token rings, Five pings for the UNIX machines, Hundred pings for the broken links, One special ping to check them all Through Simple Network Management Protocol! |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Для профи | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |