Реалізація пошуку на сайті через php
Відео: Видеоурок по реалізації пошуку на сайті Частина 2
Відео: Пошук на сайті
У мене вже кілька разів просили написати статтю про те, як реалізувати пошук на сайті через PHP. Завдання це непросте, я б навіть сказав - дуже непроста, оскільки тут є величезна кількість нюансів і перешкод. У цій статті я розберу алгоритм пошуку на сайті.
Давайте припустимо, що на нашому сайті є безліч різних матеріалів (статей, новин, заміток та іншого). Все це добро знаходиться в базі даних. І наше завдання - реалізувати пошук на сайті. Найпростіший алгоритм наступний:
Відео: 12.Реалізація пошуку по сайту
- створити HTML-форму з рядком пошуку, а також кнопкою "Submit". У текстове поле користувачі будуть вводити пошуковий запит, а далі натискати на кнопку.
- Отримати пошуковий запит (як правило, передається методом GET, але іноді застосовують і POST), А також, з метою захисту від XSS, пропустити його через функцію htmlspecialchars ().
- Зробити вибірку з відповідних таблиці (зі статтями, новинами, нотатками і іншим) тих записів, в яких міститься пошуковий запит. Показую приблизний SQL-запит для таких випадків:
SELECT * FROM articles WHERE `text_article` LIKE %search%
Відповідно, замість search підставляється рядок пошуку. - Отримавши записи, в потрібному вигляді виводимо їх, бажано, за релевантністю. Я, наприклад, зробив у себе на сайті так: де найбільше збігів - та стаття і релевантні, отже, ставлю її першої. Швидше за все, Вам цей спосіб оцінки релевантності теж підійде.
Багато з Вас скажуть, що нічого складного тут немає. І будуть частково праві, проте, давайте розберемо такий приклад рядка пошуку: "шукаю цей текст". Постає питання:"А що, власне, шукається?". Чи то шукається точне входження тексту"шукаю цей текст". Або, можливо, шукається текст, де присутні всі три слова, але які можуть слідувати далеко не один за одним. Або, можливо, шукається текст, де присутня хоча б одне з цих слів.
Відео: Урок 13 Пошук по сайту
І ось тут завдання значно ускладнюється. Можна зробити складну систему синтаксису (як в пошукових системах), наприклад, шукається точне входження, якщо запит заданий в лапках. А можна давати вибір користувачам, як саме вони хочуть проводити пошук (за допомогою radio-кнопок). Таким чином, зроблено у мене на сайті. Тому в попередній алгоритм додається ще один пункт: складання SQL-запит. Ось приклад SQL-запиту, коли потрібно витягнути всі матеріали, в яких є хоча б одне слово із запиту "шукаю цей текст":
SELECT * FROM articles WHERE (`text_article` LIKE "% Шукаю%" OR `text_article` LIKE "% Цей%" OR `text_article` LIKE "% Текст%")
Відповідно, в скрипті пошуку Ви повинні генерувати подібні SQL-запити, посилати до бази даних, отримувати відповідь і виводити його. Це все ще більше ускладнюється, якщо Ви виводите записи за релевантністю, так як важко відразу сказати, що повинно бути релевантні: 3 точних входження запиту, або 10 входжень частин запиту. У мене на сайті перевагу завжди віддається точним вхожденіяі, але цей момент вже досить спірне. Безумовно, це складно, і якщо це Ви робите в перший раз, то кілька годин Ви точно витратите. Сподіваюся, що мій алгоритм реалізації пошуку на сайті через PHP Вам допоможе.
- Секрети windows 7
- Відеоурок по реалізації пошуку на сайті
- Як створити голосування на сайті
- Як за допомогою google і яндекс шукати інформацію на конкретному сайті?
- Як зробити коментування на сайті
- Як зробити коментування на html-сайті
- Коли використовувати post, а коли get?
- Як зробити гарячі клавіші на сайті
- Як зробити реєстрацію та авторизацію користувачів на сайті
- Як поміняти кодування на сайті
- Пошук битих посилань на сайті
- Конструкція where в sql
- Реалізація хто онлайн
- Пошук по базі даних з сортуванням за релевантністю
- Чи не працює sql-запит
- Запит sql на вибірку певного числа записів
- Реалізація редиректу на php
- Фільтр пошуку на php
- Пошук по файлах на php
- На сайті з`явилася нова категорія
- Реалізація таймера в jаvascript