[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Теги и поиск по ним
zagiziga
Я только-только начинаю учить PHP
Задача такая:
Надо сделать форму добавления постов. Причем в каждом есть ТЕГИ.
Есть список всех тегов, юзер отмечает чекбоксами те, которые ему нужны и нажимает кнопку.
По нажатию надо осуществить максимально подходящий поиск. То есть, например сначала идут те посты, теги в котором полностью совпадают, ну или, например в посте 3 тега, юзер ищет 4, в этих 4-ых есть эти 3 тега из поста. То есть тегов должны совпадать, либо их должно быть чуть меньше.
Потом в результатах поиска посты, в которых тегов на один больше, чем ищут, причем все, кроме этого одного совпадают с искомыми. Потом идут те посты, в которых на два тега больше и т.д.
Вопрос:
Как осуществить этот самый поиск по тегам? Как делать форму добавления постов? Каким образом надо формировать базу данных для этого? Учитывая то, что у каждого тега будет свой id, дабы упростить работу



Спустя 17 минут, 21 секунда (30.05.2011 - 23:29) Гость_user написал(а):
Кажется, нужен поиск с сортировкой по релевантности.
А это уже не "сделать форму добавления постов." Это уже поисковая система, хоть и относительно простая.

Спустя 11 минут, 15 секунд (30.05.2011 - 23:41) zagiziga написал(а):
Да, поисковая система. Причем, наверное, очень и очень простая. Подскажите пожалуйста, как сделать.
Причем я совсем не представляю как работает поиск, так что мне надо как можно подробнее объяснить.

Спустя 1 минута, 34 секунды (30.05.2011 - 23:42) neadekvat написал(а):
Цитата (zagiziga @ 31.05.2011 - 00:41)
так что мне надо как можно подробнее объяснить

Мало похоже на учебную задачу.
Быть может, стоит начать с чего-то попроще? С задач, на которых можно отработать отдельные элементы, а уж потом попробовать совместить это.

Спустя 3 минуты, 34 секунды (30.05.2011 - 23:46) zagiziga написал(а):
Думаю это не так уж и сложно
Надо просто сделать список слов, пользователь отмечает галочками нужные, а поиск ищет посты, с такими же словами, указанными в тегах.

Спустя 29 минут, 27 секунд (31.05.2011 - 00:15) denash написал(а):
Цитата (zagiziga @ 30.05.2011 - 20:46)
Думаю это не так уж и сложно
Надо просто сделать список слов, пользователь отмечает галочками нужные, а поиск ищет посты, с такими же словами, указанными в тегах.

Ну дак приведи пример своих набросков, а мы тебе чуть что поможем.

Спустя 7 минут, 32 секунды (31.05.2011 - 00:23) zagiziga написал(а):
Я вообще не знаю как работает поиск
Но вот, как это будет работать в целом осознаю
Юзер выбирает несколько тегов, их число записывается. С помощью поиска находятся посты с такими же тегами, релевантность такая: сначала идут посты, кол-во тегов в которых совпадает с уже запомненным числом или меньше, а уже потом, кол-во тегов в котором больше запомненного коэффициента.
Я смог додуматься только до алгоритма релевантности, а как работает поиск даже не представляю.

Спустя 10 минут, 23 секунды (31.05.2011 - 00:33) Игорь_Vasinsky написал(а):
biggrin.gif
Цитата
релевантность такая: сначала идут посты, кол-во тегов в которых совпадает с уже запомненным числом или меньше, а уже потом, кол-во тегов в котором больше запомненного коэффициента.


она и в африке - релевантность.

нужны наработки твои.

начни с подключения к скрверу БД wink.gif

Спустя 10 часов, 15 минут, 2 секунды (31.05.2011 - 10:48) guest_user написал(а):
->Мало похоже на учебную задачу.
Быть может, стоит начать с чего-то попроще? С задач, на которых можно отработать отдельные элементы, а уж потом попробовать совместить это.

Не хочу никого обижать по мелочам, но что вы за форумчане такие интересные.
Человек не нравоучений или советов по обучению просит, а вполне конкретные вещи. С чего начать: с попроще или не попроще ему решать, не вам.
К чему эти фразы о попроще. Начните отвечать ему на его вопрос, кажущийся вам сложным, он поймет как это сложно или просто и соответственно либо бросит затею, либо попросит помощи еще и еще. А вы или помогайте или нет.

Простой поиск:

$q = mysql_query("SELECT DISTINCT * FROM `table` WHERE `field` LIKE '%".mysql_real_escape_string($my_search_text)."%'");

Спустя 6 часов, 43 минуты, 58 секунд (31.05.2011 - 17:32) neadekvat написал(а):
Цитата (guest_user @ 31.05.2011 - 11:48)
С чего начать: с попроще или не попроще ему решать, не вам.

Да, но мне решать: помогать или не помогать.

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

На форуме такая философия: либо мы пишем код вместе (при этом первый шаг делает автор), либо это уже коммерческий проект с оплатой.

Что касается "простого поиска" - то этот код не имеет никакого отношения к задаче автора.

Спустя 2 часа, 42 минуты, 22 секунды (31.05.2011 - 20:15) inpost написал(а):
guest_user
Такая реация, потому что автор хочет "студентской халявы", а не научиться программировать. А мы как раз хотим помочь сделать из него программиста. Ах да, твой пример - это не то, что хочет автор smile.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.