RuslanAbdurakhmanov
@RuslanAbdurakhmanov
web page unavailable

Как сделать поиск как у Хабр QnA?

Я сделал сайт на локальном сервере и хочу сделать поиск по сайту. Можете помочь и объяснить, как сделать поиск как у этого сайта?
  • Вопрос задан
  • 428 просмотров
Решения вопроса 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
Начни с простого поиска введённой подстроки

1. Выделяешь таблицы, по которым будешь искать
2. Делаешь к ним запросы.
3. К таблицам тегов и пользователей запрос только к одному полю, запрос к таблице вопросов по нескольким полям.

$search = '%'.$_GET['q'].'%';
$sql = "SELECT * FROM questions WHERE body LIKE ? OR title LIKE ?, LIMIT ?,?";
$stmt->prepare($sql);
$stmt->bind_param("ss", $search, $search, $limit, $offset);
$stmt->execute();
$rows = $stmt->get_result()->fetch_all(MYSQLI_ASSOC);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
@VisualIdeas
Как организовывается поиск (отсортировал по сложности реализации):
  1. Сторонний поиск (Яндекс и Google дают такие возможности)
  2. Простой поиск по таблицам MySQL (через LIKE %)
  3. Боле сложный поиск MySQL через FullTextIndex
  4. Поиск через дополнительное ПО:
    1. Sphinx (есть простая морфология РУ и ЭН)
    2. ElasticSearch самый лучший вариант - но и самый сложный в реализации



Так что вам надо определится с требуемым качеством поиска и от этого отталкиваться
Ответ написан
@Nolan81
программист
Поиск это большая задача.
Без специального ПО, как то Sphinx или ElasticSearch, будет сложно сделать качественно.
Например в поиске этого сайта вводите: "сделали поиск", "сделаем поиск", оно выдаст результаты со словами "сделать", т.е. формы слова учитывает
Ответ написан
Комментировать
@Vmexanik
Web developer
Если имелся ввиду поиск на лету то на фронте можно применить что то типа autocomplete от jQuery , а на бэке sphinx или что то в этом роде
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 20:43
20000 руб./за проект
19 апр. 2024, в 20:11
500 руб./за проект