Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Движок поиска для самописного сайта 
:(
    Опции темы
artlayers
Дата 10.8.2011, 10:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 30.10.2007

Репутация: нет
Всего: нет



Есть самописный движок, необходимо организовать поиск по БД (mysql), по двум полям - русское название и название на английском языке. При всем этом вариант типа
Код

SELECT * FROM name WHERE 
 en_title  LIKE %что-то% 
 OR  ru_title LIKE %что-то%

совсем не подходит. Нужен поиск умнее, который может учитывать частичные совпадения и ранжировать соответственно результаты. Например, неграмотный пользователь пишет запрос: "велосепед" такого слова в БД нет, соответственно при поиске влоб пользователь получит ответ, что ничего не найдено. Но слово "велосипед" в БД есть и даже при неправильном запросе, но близком к этому слову пользователь должен получить релевантный результат. Кроме того, необходимо учитывать разные словоформы одного слова. Подскажите готовые решения или пути. Спасибо.

Это сообщение отредактировал(а) artlayers - 10.8.2011, 10:23
PM MAIL   Вверх
Wolf1994
Дата 11.8.2011, 06:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 5.10.2004

Репутация: нет
Всего: 29



Цитата(artlayers @  10.8.2011,  10:23 Найти цитируемый пост)
Кроме того, необходимо учитывать разные словоформы одного слова. 

Будет работать, если удалить все возможные окончания слова.

Цитата(artlayers @  10.8.2011,  10:23 Найти цитируемый пост)
ранжировать соответственно результаты

Быстрее и качественнее сделать ранжирование скриптом: можно использовать сложные алгоритмы, нагрузка же при обработке небольшого количества данных (до 50 строк больше, чем достаточно для хорошего поиска) будет минимальной.

Цитата(artlayers @  10.8.2011,  10:23 Найти цитируемый пост)
Нужен поиск умнее, который может учитывать частичные совпадения

Можно создать дополнительное поле в БД, которое будет содержать слово только из согласных букв. При выборке также указывать такое слово - почти все ошибки (обычно в гласных) не будут оказывать влияния на поиск.
PM MAIL WWW   Вверх
jsa
Дата 11.8.2011, 07:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 704
Регистрация: 19.1.2006
Где: Новосибирск

Репутация: нет
Всего: 20



artlayers, посмотри на sphinx


--------------------
Все мы, на перине с песней, строим небо на земле © Ю. Шевчук
PM MAIL ICQ   Вверх
makklovskiy
Дата 19.8.2011, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 14.1.2010

Репутация: -1
Всего: -2



для того чтобы поиск был умнее надо будет забивать в базу словари и сравнивать у кредитора к примеру есть опция проверить на орфографию, и маленький совет, пользуйся функцией msql_real_escape_string();
PM MAIL   Вверх
Absinthe
Дата 19.8.2011, 22:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 526
Регистрация: 4.5.2011

Репутация: 1
Всего: 11



makklovskiy, ты вообще читаешь то, что комментируешь?
PM MAIL   Вверх
MuToGeN
Дата 29.8.2011, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесник
****


Профиль
Группа: Модератор
Сообщений: 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!
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

Внимание: данный раздел предназначен для решения сложных, нестандартных задач.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Для профи | Следующая тема »


 




[ Время генерации скрипта: 0.0809 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.