Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Возможно, вы искали... - как это реализуется?
Форумы портала PHP.SU » » Вопросы новичков » Возможно, вы искали... - как это реализуется?

Страниц (1): [1]
 

1. zusicks438 - 28 Марта, 2013 - 18:09:58 - перейти к сообщению
Доброго времени суток.

Не знал, куда написать, решил в вопросы новичков. Думаю, всем хорошо знаком механизм поиска в Google. В частности, если Вы вводите запрос типа "phhp", то поисковик выдаст "Возможно, вы имели в виду: php".

Долго думал, каким образом это вообще работает, но ни одной умной мысли на этот счет так и не появилось. Так как все-таки обрабатывается запрос и возможна ли реализация такой проверки на обычном сайте?
2. esterio - 28 Марта, 2013 - 18:16:18 - перейти к сообщению
jqueryuU autocomplete
3. zusicks438 - 28 Марта, 2013 - 20:04:40 - перейти к сообщению
Спасибо, это тоже очень полезная штука, которая отчасти решает данную проблему.

Но все же изначально был интересен вариант, когда я уже ввел запрос, и если запрос оказался с опечаткой, то скрипт на эту опечатку должен указать ("возможно, вы имели в виду такое-то слово")
4. NoPaper - 28 Марта, 2013 - 20:13:05 - перейти к сообщению
Интересная задачка =)
А что если система ищет слова, состоящие из букв, в данном случае, 'p','h','h','p', и выводит наиболее "похожее"?
5. DelphinPRO - 28 Марта, 2013 - 20:19:02 - перейти к сообщению
видимо нужен спеллчекер + анализ раскладки + может еще что
6. Zuldek - 29 Марта, 2013 - 08:44:02 - перейти к сообщению
jqueryuU autocomplete + поиск по алиасам тегов
Пример тег php
Пользователь ввел пхп. Вы должны транслитерировать запрос и искать в базе будете по php и пхп. Если пользователь ввел пх, то, соответственно ph и пх.
Если у вас под автокомплит подходит только php, то он и вылезет.
У одного тега может быть сколько угодно алиасов: php - phpbb (возможно вы захотите использовать это как алиас php, кто вас знает), пыха и т.д. В случае, если у вас есть алиасы то вы показываете их пользователю в "возможно вы искали:", при этом выборку нод в базе осуществляете по конкретному ключу тега, к которому относится алиас, выбранный пользователем.
7. DelphinPRO - 29 Марта, 2013 - 09:16:23 - перейти к сообщению
Zuldek, а если это поиск по содержимому а не о тегам, как быть?
Для всех слов алиасы не напишешь.
8. Zuldek - 29 Марта, 2013 - 09:38:14 - перейти к сообщению
DelphinPRO пишет:
Zuldek, а если это поиск по содержимому а не о тегам, как быть?
Для всех слов алиасы не напишешь.


В большинстве популярных CMS (прим. WP) это делается с помощью тегов. Идет выборка из списка доступных тегов (как и создание новых) при добавлении новой ноды на сайт.
В противном случае пишите инструмент аналог гугла с позиции автоматического анализа текста, который не просто будет формировать индексы содержимого, но уметь разделять содержимое по логическому и тематическому смыслу. Кроме того, такой инструмент будет ещё хранить и оценивать историю поиска, чтобы показывать актуальные результаты (учитывающие ошибки в написании слов) в поле "возможно вы искали".
Цитата:
Для всех слов алиасы не напишешь.

Именно это, как вы знаете, в конечном счете и делает поисковая система. Только, конечно, не пишет их для всех слов, а группирует, типизирует и определяет канонические варианты.
9. caballero - 29 Марта, 2013 - 10:57:01 - перейти к сообщению
сфинкс или SOLR и будет вам счастье. В крайнем случае если таблицы ISAM можно заюзать полнотекстовый поиск
10. zusicks438 - 29 Марта, 2013 - 17:55:22 - перейти к сообщению
Хм...да, все становится более понятным. Сильно заморачиваться в данном случае не имеет смысла, но jqueryuU autocomplete, учет раскладки и теги действительно сильно облегчат жизнь. Спасибо.
11. armancho7777777 - 29 Марта, 2013 - 18:23:47 - перейти к сообщению
caballero пишет:
если таблицы ISAM можно заюзать полнотекстовый поиск

Этого будет достаточно.
match / against выберит и отсортирует результат запроса по релевантности.
Ограничение по умолчанию в 3 символа, которое можно отредактировать в конфигурационном файле MySQL.

 

Powered by ExBB FM 1.0 RC1