[MySQL FULLTEXT] beautiful search engine

rtyug
На сайте с 13.05.2009
Offline
263
1887

есть MySQL FULLtext

подскажите, есть ли поиск красивый который обработает синонимы русский (морфология) и:

(желательно укр. и англ.)

1) а как сделать чтобы откорректировать поиск если не правильно ввелось слово с раскладкой?

2) и как исправить орфографию на ходу?

Сахор = Сахар

3) и т.д. как у яндекса

нету ли решения, или нужно изобретать это?

Sphinx - это делает? я еще видел яндекс такую программу выпустил

но тут в статье не написано http://habrahabr.ru/blogs/sphinx/47908/

про морфологию, и как ее включить фиг ее знает...

я нашел модули для обработки http://www.opennet.ru/prog/info/2062.shtml

но я не думал что я буду велосипед писать в 21 веке

есть ли решения?

Спалил тему: Pokerstars вывод WMZ, etc на VISA 0% или SWIFT + Конверт USD/GBP,etc (net profit $0,5 млрд) (https://minfin.com.ua/blogs/94589307/115366/) Monobank - 50₴ на счет при рег. тут (https://clck.ru/DLX4r) | Номер SIP АТС Москва 7(495) - 0Ꝑ, 8(800) - 800Ꝑ/0Ꝑ (http://goo.gl/XOrCSn)
[umka]
На сайте с 25.05.2008
Offline
456
#1

Мне кажется, это вопрос из серии "А на каком движке работает Яндекс?".

Если поставлена задача это реализовать силами MySQL, то я бы отдавал MySQL-ю уже "подготовленный" контент (единственное число, именительный падеж и пр.).

И соответствующим образом "причёсывал" бы и поисковые запросы.

Т.е. возложил бы проблемы морфологии/орфографии/и пр. не на MySQL, а на программный интерфейс.

Вообще, то что вы спрашиваете - это всё очень и очень сложно.

В мильён раз сложней, чем просто полнотекстовый поиск. Как по реализации, так и по нагрузке на оборудование.

Так что для несерьёзного проекта это всё не нужно/не рентабельно, а для серьёзного - лучше пригласить математиков :)

Нормальные алгоритмы "на шару" вряд ли удастся найти.

Лог в помощь!
SilverMaster
На сайте с 08.10.2003
Offline
228
#2
'[umka:
;6099770']
Вообще, то что вы спрашиваете - это всё очень и очень сложно.

Соглашусь с umka, задачу вы ставите очень серьезную. Такой ли серьезный проект вы делаете?

Из детских комшаров: "А вдруг ночью придет страшный робот!" Из взрослых: "И криво проиндексирует сайт". Не всякий гик добежит до середины поисковой страницы гугла
pikasso
На сайте с 27.01.2008
Offline
150
#3

[umka], полностью согласен с вами. Эта задача очень и очень сложная и не решается путем установки 1-го скрипта.

[umka:
]1) а как сделать чтобы откорректировать поиск если не правильно ввелось слово с раскладкой?
2) и как исправить орфографию на ходу?
Сахор = Сахар

Если тут ещё можно самому что нибудь придумать, например сравнивать запрашиваемые слова с полной базой русских слов, или что нибудь в этом роде.

То тут:

rtyug:
3) и т.д. как у яндекса

По мне просто не реально, так как и яндекс и гугл в этом случае используют для сравнения свою базу запрашиваемых ключевых слов и очень сложные математические формулы.

T
На сайте с 13.01.2009
Offline
50
#4

Sphinx .

malls
На сайте с 08.08.2005
Offline
255
#5
rtyug:
подскажите, есть ли поиск красивый который обработает синонимы русский (морфология) и: (желательно укр. и англ.)

почти никак. Морфология даже для Яндексов с Гуглами до сих пор не решенная окончательно задача... Морфология это вообще штука забавная... Единственное правильное решение (которым все и пользуются) - это сравнение по маске на основании готовых (правильных) словарей. Такую возможность дают те же ispell словари, которые в основе всех клонированных продуктов лежат. Они решают задачу не идеально, но достаточно полно. Так, например, словарь Даля ок. 190 тыс. слов, Академический словарь современного русского 60-х годов ок. 120 тыс., в словаре же Лебедева для ispell ок. 130 тыс. основ из которых на основании правил выделяется больше миллиона словоформ с которыми собственно и будете сравнивать свою поисковую строку.

Для английского ispell словооснов ок. 60 тыс... (для сравнения: Оксфордский словарь ок. 300 тыс. статей, Англо-русский словарь Мюллера. 67 тыс. слов)

Синонимы - а где базу взять толковую синонимов? К словарям Hunspell прилагаются листинги тезауруса - но они не совершенны.

rtyug:
1) а как сделать чтобы откорректировать поиск если не правильно ввелось слово с раскладкой?

Попробовать угадать раскладку пользователя, на основании системного языка, и дальше если введенное не соответствует словарю - попробовать конвертнуть и еще раз сверить со словарем.

rtyug:

2) и как исправить орфографию на ходу?
Сахор = Сахар
3) и т.д. как у яндекса

Никак... Гадание на кофейной гуще в котором тот же Яндекс путается, другое дело что Яндекс имеет частотную базу запросов и может гадать вероятностно... Т.е. выбирать варианты не просто наобум по маске, а еще и выбирать наиболее часто запрашиваемые варианты.

rtyug:
но я не думал что я буду велосипед писать в 21 веке

Велосипеда как такового еще нет... Есть пока только самокаты... Если Вам удасться его изобрести хотя бы для русского (что сомнительно), то те же "самокатчики" вроде Яндекса с Гуглем с удовольствием у Вас его купят...

'[umka:
;6099770']лучше пригласить математиков
pikasso:
очень сложные математические формулы.

В том то и проблема, что математика в делах морфологии никак вообще не рулит...

rtyug
На сайте с 13.05.2009
Offline
263
#6

понятно, всем спасибо!!

проект действительно не серьезный, просто я стаью хотел написать по построению поиска, рассматривал варианты... пытался писать некие алгоритмы для выдачи http://www.x0.org.ua/view_content/84

мне говорили что Sphinx не решает все проблемы

===

вообщем пока остановлюсь на Sphinx....

M
На сайте с 20.08.2004
Offline
376
#7

может вам проще использовать уже готовые решения

http://site.yandex.ru/

http://xml.yandex.ru/

http://company.yandex.ru/technology/server/

А не изобретать велосипед.

Задача реально не простая.

отец сыночка, лапочки дочки и еще одного сыночка

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