Задать вопрос

Как лучше всего сделать поиск по сайту?

Здравствуйте. Как сейчас лучше всего сделать поиск по небольшому сайту? Сайт не посажен ни на одну CMS
  • Вопрос задан
  • 939 просмотров
Подписаться 7 Простой Комментировать
Решения вопроса 1
поисковые формы от Яндекс, Гугл, DuckDuckGo для поиска по сайту
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
@rubtsoff
я бы посоветовал поисковик от гугла: https://cse.google.ru/cse
Ответ написан
@Yupa20171123
1. Форма для отправки. Поле ввода и кнопка (минимальное).

2. Обработка POST или GET в внешней программе (процессе) . Процесс открывает и слушает. Обрабатывает и возврашает на страницу что нашол. У меня ушел один вечер на WEB сервер, этот просто.

3. Робот.
--- Содержимое сайта чем то парсить и делать базу слов и выражений.

4. Дерево тегов (как старорежимный тематический каталог)
--- Набрать по тексту набор тегов. Желательно в виде дерева. Если сайт наполняете не вы, можно добавить метку "страница обновлена" (для робота) и пользователю интерфейс добавить ключи поиска в дерево.
--- Можно прикрутить самообучалку (если позволяет задача).
--- Можно эту базу выдавать в виде *.html

*Кремний
**Поликристал <--- ссылка на список страниц.
***импортный <- тоже ссылка...
***очистка
**Кусковой
**Техинческий
*Германий

Такое дерево реализуется ссылками например в каталогах или БД (лучше всего своей, живущей в GPU).
Открыв "кремний поликристал" попадет в каталог с "импортный" и "очистка". Дальше может быть ссылка на адрес и метка в странице или переход на эту же страницу с параметром для скрипта "перейди на ??? строчку и выдели ??? текст".

5. "Каталог мне не нравится, хочу искать сам". - после капчи (или ее аналога) запускается парсер файлов.
Вариант 1:
("кремний кусковой")and(ГОСТ)

-- просто написать чтото вроде "GREP" но умнее, как старый Яндекс и Гугл.
Вариант 2:
Можно упростить жизнь в виде:
[x]Точное совпадение   
  настройки: [х]-Учет регистра. [2]-растояние между словами. <more>
  [x]:[Кремний кусковой]  
  [ ][ <null> ]
[  ]Точное совпадение   
[x]Должны быть в документе слова (фразы) на растоянии от искомого 
  настройки: [х]-Учет регистра. [4]-слов.  [any]-символов.    <more - спойлер>
  [x][в наличии]
  [  ][ null ]
[ ]Должны быть в документе слова  на растоянии от искомого.
[ ]Дата изменения документа.


Реализуется как:
условия_поиска {
  uchar ucType; <-- enum { .. }
  параметры_для_словия xOpt;
  char* pszText; 
};

Запустить поток (и). Открыть документ из списка публичных файлов (как usermap у samba или exports.conf у nfs) .
Пробежаться по массиву проверяя выполнение этих условий. Если все верно, запомнить места и добавить в выдачу.

Если сделать в виде отдельной проги будет полезна и вне вашего продукта (или искать, возможно такая уже есть).
Тогда просто скармливать ей из списка публичных файлов файлы и смотреть выдачу.

Можно и к grep прикрутить обработку, кому как нравится (как поиск по манам).
Ответ написан
Комментировать
dimonchik2013
@dimonchik2013
non progredi est regredi
postgresql
sphinx

в общем-то и в Мускуле есть Full text search
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
22 дек. 2024, в 13:01
50000 руб./за проект
22 дек. 2024, в 10:44
15000 руб./за проект
22 дек. 2024, в 10:12
10000 руб./за проект