Движок поиска для самописного сайта

I
На сайте с 26.04.2011
Offline
95
865

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

SELECT * FROM name WHERE 

en_title LIKE %что-то%
OR ru_title LIKE %что-то%

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

DV
На сайте с 01.05.2010
Offline
644
#1

Может, разумнее Google/Yandex подвязать?

VDS хостинг ( http://clck.ru/0u97l ) Нет нерешаемых задач ( https://searchengines.guru/ru/forum/806725 ) | Перенос сайтов на Drupal 7 с любых CMS. ( https://searchengines.guru/ru/forum/531842/page6#comment_10504844 )
I
На сайте с 26.04.2011
Offline
95
#2
DenisVS:
Может, разумнее Google/Yandex подвязать?

Спасибо. Этот вариант рассматривал. Точно нет.

TC
На сайте с 06.01.2011
Offline
5
#3

Вот попробуйте, у нас в локалке работает, всем довольны http://company.yandex.ru/technology/server/features/

S
На сайте с 11.06.2010
Offline
57
#4

http://mysql.ru/docs/man/Fulltext_Search.html

Когда команда MATCH() используется в выражении WHERE (см. пример выше), возвращенные строки столбцов автоматически сортируются, начиная с наиболее релевантных. Величина релевантности представляет собой неотрицательное число с плавающей точкой. Релевантность вычисляется на основе количества слов в данной строке столбца, количества уникальных слов в этой строке, общего количества слов в тексте и числа документов (строк), содержащих отдельное слово.
I
На сайте с 26.04.2011
Offline
95
#5
TempCCW:
Вот попробуйте, у нас в локалке работает, всем довольны http://company.yandex.ru/technology/server/features/

Там скорее всего копирайт красуется Яндекса рядом со строкой поиска и скрывать его нельзя?

Isaround добавил 10.08.2011 в 12:55

Спасибо. Я знал про это, но ведь вопрос ошибки в запросе это не решит. Лишь только сможет релевантность расставить и то на основе количества вхождений. Или это не так?

Ervin
На сайте с 15.08.2008
Offline
112
#6

Isaround, возможно, sphinx получится допилить?

Сайт проекта (на английском, хотя сам проект русский): http://sphinxsearch.com/

Русская часть форума поддержки: http://sphinxsearch.com/forum/forum.html?id=2

Credendo vidas!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий