Наверное, не сосчитать то количество проблем, которые решают поисковики. Ведь, если задуматься, то при возникшей проблеме или вообще по любой надобности мы все бежим в интернет и ищем ответы на вопросы. Поэтому ценность поисковиков неописуема.
Это всё хорошо, но мы с вами не просто так здесь собрались. Нам нужно узнать, как же они работают и можно ли самостоятельно создать поисковик. Об этом и поговорим ниже.
Как работает поисковая система
Моментальные результаты, которые мы видим на экране нашего девайса – это итог работы поисковика. Лично мне всегда была интересно узнать, что происходит внутри этой системы, почему появляется именно та информация, которая нас интересует. Так как же устроен поиск?
Из чего состоит поиск
Для начала, можно разделить всю работу системы на два этапа:
- Анализ и создание образа на собственных серверах;
- Подбор наиболее подходящей информации под запрос пользователя.
Популярность поисковых систем настолько велика, что количество запросов превышает численность населения России. А если учесть, что примерно половина из них никогда не производилась, то понятно почему иногда реальный результат не совпадает с желаемым. Попросту невозможно отследить и проконтролировать процесс выдачи информации для каждого, поэтому её максимально систематизируют.
Поиск в интернете. Sketcware
Работа происходит путём исключения и сокращения списка по релевантности запроса. Таким образом из миллионов страниц, нашему взору открываются всего десять наиболее подходящих.
Чтобы было проще, будем рассматривать на примере Яндекса.
Нужно справедливо оценивать свои намерения при использовании этого ресурса. Ведь мы с вами заходим в поисковик, чтобы найти конкретные сведения. Мало того, что Яндекс выдаёт наиболее верные варианты, так он же ещё может найти фильм по описанию слов. Поэтому, поисковик решает конкретные поставленные задачи, а не просто находит и показывает информацию.
К тому же Яндекс выстраивает страницу выдачи так, чтобы она полностью удовлетворила возможные потребности пользователя. Например, при запросе «кино», вы сможете увидеть подборку рекомендуемых для вас фильмов.
Причём, тут сразу же отображается оценка и возможность сортировки по жанру, популярности или году выпуска. Исходя из этого, можно сказать что Яндекс настоящий гигант в мире поисковиков.
Что влияет на профит поиска
Переходим к вопросу о том, каким образом поисковик понимает, что выдача актуальна для пользователя. Наверное стоит начать с команды инженеров работающих в компании. Результаты их аналитических трудов позволяют нам с вами видеть нужный контент.
Данную задачу выполняют и люди, их называют асессорами. Это такие работники, которые проверяют профит поискового запроса, то есть полезным ли оказался результат и подходит ли он. Кстати, у Яндекса есть даже специальное приложение, где любой сможет заработать на этом хоть и небольшие деньги – Яндекс.Толока.
OSINT Python | Как найти человека в интернете? | Поиск по социальным сетям
Нужно сказать, что раньше компании считали выдачу полезной, если человек перешёл на сайт и провёл там много времени. Однако, потом подумали, что это не всегда правильно, поэтому в анализ эффективности включились дополнительные параметры. Например, добавил ли человек товар в корзину или зарегистрировался ли на сайте. Эти детали дают намного больше полезных данных.
Как поиск приобрёл интеллект
Особенность Яндекса состоит в том, что при работе он использует машинное обучение. Так же как и человек, поисковик научился анализировать действия пользователя и выводить наилучшие результаты.
Для этого алгоритм настраивают, приводя ему примеры правильно реализованных запросов. И вот уже спустя несколько миллионов тренировок, он начинает понимать и реализовывать накопленный опыт.
Как работает функция коротких ответов
Порой уровень понимания запроса поисковиком настолько высокий, что результат может быть выведет в чёткую формулировку какого-либо понятия. Например, при поиске «перцептивный» непонятно, что имеет в виду пользователь, но Яндекс считает нужным дать определение.
А если человек будет искать какой-то географический объект, то на странице отобразится карта.
Такие результаты отображаются в случае, если от этого будет зависеть профит поиска.
На самом деле, Яндекс настолько преисполнился, что сейчас уже производится поиск по фотографиям, где пользователь может найти необходимый объект, известную личность или похожего человека.
Как собственноручно создать поисковик
Что ж, теперь когда мы понимаем принцип работы поисковика, можно разобраться с тем, как его сделать.
Для начала разделим поисковики на две группы:
- Глобальный поисковик, работающий по всей сети;
- Локальный поисковик, работающий в пределах определённого ресурса.
Создание глобального поисковика
Сделать поисковик на уровне Google или Яндекс не так-то просто, а вот подобный им гораздо легче. На мой взгляд, каждый опытный разработчик сможет с этим справиться.
Каждая система состоит из следующих основных структур:
- Интерфейс пользователя;
- Базы данных сайтов;
- Поисковой аналитик, обновляющий информацию о сайте в базе данных.
Для реализации системы поиска достаточно просто найти скрипты в интернете. Они могут быть как платные, так и бесплатные. Также вполне логичным будет решение создать команду энтузиастов, готовых практиковаться в вашем проекте. Потому что для конкуренции придётся:
- Пользоваться услугами специалистов в сфере IT-сфере и обеспечить им рабочее пространство;
- Организовать дата-центр для хранения данных;
- Настроиться на большие убытки в начале пути.
Безусловно, всё это не даёт никаких гарантий на ваш успех и дальнейший заработок. Потому что параллельно вам будут развиваться и гиганты этой сферы. Поэтому, чтобы их превзойти, придётся чем-то выделяться. Так же и технический аспект тоже должен быть лучше конкурентов.
Приходим к выводу, что создание масштабного поисковика – задача не сложная. Другое дело его поддерживать и развивать. А для этого потребуется много сил и материальных вложений.
Создание локального поисковика
Что ж, локальный поисковик более эффективная система, используемая на личном сайте, блоге и так далее. Ввиду конкретной направленности возможных запросов, легче подобрать список необходимых источников. В таком случае не будет проблем с релевантностью выдачи информации.
Представим, что ваш ресурс сотрудничает с более 300 партнёрами и вы пользуетесь ещё дополнительными источниками в размере 500 штук. Тогда вы спокойно можете настроить систему на более чем 800 ресурсов, которые буду безошибочно воспроизводить поисковые запросы людей. В таком случае пользователям намного проще разобраться в информации, которая изначально подобрана по них.
К главным преимуществам такой системы можно отнести:
- Удобство использования клиентами;
- Возможность монетизации на основе вашего проекта;
- Плюс в карму и имиджу вашего ресурса.
К тому же такие системы достаточно просто устанавливаются за счёт ряда готовых решений, имеющихся на просторах сети в виде плагинов.
Источник: matao.ru
Своя поисковая система на сайте
Здравствуйте.
Хочу поделиться с теми, кто зарабатывает на своем сайте ( PHP ), возможно на интернет магазине, как сделать более удобным свой ресурс для ваших клиентов. Я расскажу, как сделать систему поиска на своем сайте. При помощи поиска ваш покупатель может гораздо быстрее найти нужный ему товар и покупатель останется доволен, или нет! Но его недовольство будет не из-за поисковика.
Практически во всех движках поиск уже встроен, если у вас он есть, то этот пост вам не нужен, но быть может вам потребуется ещё одна форма поиска или допилить существующий, тогда велком в тему, буду рад помочь!
Многие пользуются формой поиска от Яндекса или Гугла, что с одной стороны очень удобно, не надо быть программистом, что бы вставить пару строк в HTML документ. Но есть минус этих поисковиков — это время ушедшее на индексацию страницы. Например сегодня вы добавили товар, а в результатах поиска он появится только через день — два, а с Яндендексом и того дольше.
Или наоборот, вы удалили товар, а он по прежнему появляется в поисковой выдачи. Покупатель переходит по ссылке, а там говорится: Товара нет в наличии . Всем известно, что скажет покупатель в данной ситуации? По этому, я считаю, что свой поиск — это лучше. Свой поиск работает на прямую со своей базой, и будет выдавать только то что в ней есть.
Ну, давайте начнем уже.
Конечно же любой поиск начинается с вода какой то фразы/слова, водится это слово в форму. Создаем такую форму:
Код: Выделить всё
< div class = «search» >
< form action = «search.php» method = «get» >
< input type = «search» name = «word» placeholder = «Поиск» />
Что в этой форме:
Данная форма не имеет кнопки, только поле для вода слова, но по желанию кнопку можно добавить.
Для старта поиска следует нажать кнопку Enter .
Блок div с классом search, можете разукрасить при помощи css, как вам угодно. Если у вас своя задумка для вставки форму, можете удалить этот блок, я его написал для удобства.
action=»search.php» — отдает команду куда перейти после старта.
method=»get» — метод поиска. В данном случаи выбран метод GET. Это значит, что поисковое слово будет браться из URL.
type=»search» — команда «поле поиска».
name=»word» — название поля. В дальнейшем имя word будет обрабатываться, как переменная.
placeholder=»Поиск» — выводится слово Поиск в поле, когда система не выполняет поиск.
Переходим к приему слова и его обработки. Содержимое файла search.php (команда передала из формы на этот файл: action=»search.php»). Что бы было понятнее, прокомментирую по возможности код:
Код: Выделить всё $connect = mysqli_connect ( $dbhost , $dbuser , $dbpasswd , $dbname ); // Подключаемся к БД. Переменным должно быть назначены параметры доступа БД
if (! $connect ) // Проверка на ошибку подключения
exit ( ‘MySQL Error: ‘ . mysqli_error ( $connect )); // Если подключится не удалось, выводим ошибку
>
$word = (isset( $_GET [ ‘word’ ])) ? $_GET [ ‘word’ ] : null ; Забиваем переменную $word
$word = mysqli_real_escape_string ( $connect , trim ( $word )); // Экранируем символы и убираем пробелы
if(empty( $word )) // Проверяем ведено ли слово
echo ‘Не ведено слова.’ ; // Если слово не введено, выводим сообщение ошибки
>
else if ( iconv_strlen ( $word , ‘utf-8’ ) < 3 ) // Проверяем длину слова (мин 3 символа)
echo ‘Слово не может быть менее трех символов.’ ; // Если слово менее трех символов
>
else if ( iconv_strlen ( $word , ‘utf-8’ ) > 20 ) // Проверяем длину слова (макс 20 символов)
echo ‘Слово не может быть более двадцати символов.’ ; // Если слово более двадцати символов
>
else // Если в ходе проверок ни каких ошибок не выявлено, двигаемся дальше
$sql = ‘SELECT *
FROM article
WHERE article_text
LIKE «%’ . $word . ‘%»‘ ; // Составляем запрос
$query = mysqli_query ( $connect , $sql ); // Выполняем запрос
if (! $query ) // Проверяем запрос
echo ‘Ошибка базы данных.’ ; // Если возникли проблемы при выполнения запроса
>
else // Все замечательно! Двигаемся дальше
while ( $row = mysqli_fetch_assoc ( $query )) // Составляем массив
echo $row [ ‘article_title’ ] . ‘
‘ ; // Выводим список заголовков статей, в которых было найдено веденное слово
>
>
>
Вот пожалуй и все.
В примере я писал, как поиск по статьям, но его можно заменить, например на описание товара или название товара, да, как угодно!
Если есть вопросы — задавайте.
Прошу простить меня за допущенные ошибки в тексте, писать тексты не мой конек.
Надеюсь информация была полезной.
Спасибо за внимание.
Slash Эксперт Сообщения: 501
Administrator » более года назад
Спасибо за статью, очень полезная. Есть вопрос по опечаткам: можно ли сделать так, чтобы код учитывал опечатки при вводе поискового запроса и исправлял их? Насколько это сложно?
Administrator Администратор Сообщения: 9554 Откуда: Россия
Slash » более года назад
Имеется введу, как у Гугла — Возможно Вы имели введу ? Над этим надо подумать, как такое реализовать.
Возможно тут придется сравнивать введенное слово со словами в БД.
Пока что, могу предложить исправление раскладки клавиатуры, с английского на русский, и наоборот. Это для тех, кто забывает перевести клавиатуру на нужный язык. Но тут все ровно нужен механизм, который используют поисковые системы Рунета, так как во многих случаях может получится каша.
Slash Эксперт Сообщения: 501
Administrator » более года назад
Да, как у Гугла и Яндекса. Яндекс автоматически исправляет опечатки и предлагает возможность искать по неисправленному запросу. Если получится решить проблему с опечатками, следующий шаг: учет синонимов и различных форм слова, например, слова с различными окончаниями.
Slash писал(а): Пока что, могу предложить исправление раскладки клавиатуры, с английского на русский, и наоборот. Это для тех, кто забывает перевести клавиатуру на нужный язык. Но тут все ровно нужен механизм, который используют поисковые системы Рунета, так как во многих случаях может получится каша.
Да, тоже сложный момент. Можно добавить проверку по своей базе данных. Например, если человек перепутал раскладку и вместо «sd карта» ввел «ыв карта», то можно сравнивать этот текст со своей базой данной и проверять есть ли в ней совпадения с учетом различных раскладок клавиатуры.
Самое сложное сделать поиск не просто по синонимам, а по смыслу введенной фразы. Если удастся решить эти самые сложные вопросы, то может получиться очень хороший скрипт — даже лучше любого стандартного.
Administrator Администратор Сообщения: 9554 Откуда: Россия
Slash » более года назад
Вот нашел такое решение: ufi точка su/11 ( Применение алгоритмов нечеткого поиска в PHP ).
По словам автора:
Вдохновленный топиками о нечетком поиске и фонетических алгоритмах, захотел попытаться реализовать нечто подобное похожее на гугловское « Возможно, вы имели в виду : . » средствами PHP.
Результат:
халадильнег -> холодильник
аффтамабэль -> автомобиль
матоцыгл -> мотоцикл
вэласэпэд -> велосипед
аформеть -> оформить
шына -> шина
превет -> привет
Но: пгевед -> перед
Код не проверял, но судя по комментариям он вполне рабочий.
Slash Эксперт Сообщения: 501
Administrator » более года назад
Да, похоже это то что надо.
Administrator Администратор Сообщения: 9554 Откуда: Россия
dann ball » более года назад
а мне выдает это(((
Предупреждение : mysqli_error () ожидает, что параметр 1 будет mysqli, boolean задан в search.php в строке 5 Ошибка MySQL:
подскожите как мне быть?
dann ball Новичок Сообщения: 1
Slash » более года назад
Возможно ошибаюсь, но мне так кажется, что вы не назначили переменные для доступа к Базе Данных.
Slash Эксперт Сообщения: 501
Administrator » более года назад
Предположу, как назначить переменные для доступа к Базе Данных.
Допустим:
хост базы данных такой же как у сайта;
имя пользователя базы данных задано как internetschopuserbd;
пароль к базе данных — internetschoppas;
имя базы данных — internetschopname.
Эти данные можно посмотреть в панели администратора сайта.
Тогда, чтобы назначить переменные, нужно перед строкой:
Код: Выделить всё $connect = mysqli_connect($dbhost, $dbuser, $dbpasswd, $dbname); // Подключаемся к БД. Переменным должно быть назначены параметры доступа БД
добавить такой код:
Код: Выделить всё $dbhost = ‘localhost’;
$dbuser = ‘internetschopuserbd’;
$dbpasswd = ‘internetschoppasbd’;
$dbname = ‘internetschopnamebd’;
Administrator Администратор Сообщения: 9554 Откуда: Россия
Slash » более года назад
Если вы делаете поиск для уже готового сайта, то движок уже должен иметь свой файл/класс подключения к БД и работы с ней. Вам достаточно подключить тот самый файл (и создать объект (если движок на классах) (не для автозагрузчика)). Например так (очень грубый пример):
Код: Выделить всё include( ‘db.php’ );
// По требаванию движка, может потребоваться подключить что то еще
$word = (isset( $_GET [ ‘word’ ])) ? $_GET [ ‘word’ ] : null ; // Или просто: $reqvest->get(‘word’); в зависимостити от движка
$word = $db -> real_escape_string ( $connect , trim ( $word )); // Экранируем символы и убираем пробелы
// Опять же, смотря что за движок
// Возможно, половина кода ниже будет лишней
if(empty( $word )) // Проверяем ведено ли слово
echo ‘Не ведено слова.’ ; // Если слово не введено, выводим сообщение ошибки
>
else if ( iconv_strlen ( $word , ‘utf-8’ ) < 3 ) // Проверяем длину слова (мин 3 символа)
echo ‘Слово не может быть менее трех символов.’ ; // Если слово менее трех символов
>
else if ( iconv_strlen ( $word , ‘utf-8’ ) > 20 ) // Проверяем длину слова (макс 20 символов)
echo ‘Слово не может быть более двадцати символов.’ ; // Если слово более двадцати символов
>
else // Если в ходе проверок ни каких ошибок не выявлено, двигаемся дальше
$sql = ‘SELECT *
FROM article
WHERE article_text
LIKE «%’ . $word . ‘%»‘ ; // Составляем запрос
$query = $db -> query ( $connect , $sql ); // Выполняем запрос
if (! $query ) // Проверяем запрос
echo ‘Ошибка базы данных.’ ; // Если возникли проблемы при выполнения запроса
>
else // Все замечательно! Двигаемся дальше
while ( $row = $db -> fetch_assoc ( $query )) // Составляем массив
echo $row [ ‘article_title’ ] . ‘
‘ ; // Выводим список заголовков статей, в которых было найдено веденное слово
>
>
>
В моем коде, коммент не закомментирован, вместо:
Код: Выделить всё $word = (isset( $_GET [ ‘word’ ])) ? $_GET [ ‘word’ ] : null ; Забиваем переменную $word
Должно быть:
Код: Выделить всё $word = (isset( $_GET [ ‘word’ ])) ? $_GET [ ‘word’ ] : null ; // Забиваем переменную $word
Slash Эксперт Сообщения: 501
Вместо кода непонятно что!
Misha356 » более года назад
Блин, после того как я копирую код вместо кода надпись типа там подробнее на сайте идеи для бизнеса с нуля, тырыпыры. ИСПРАВЬТЕ
Misha356
Своя поисковая система на сайте
Administrator » более года назад
Источник: dohod-s-nulya.ru
Как создать свою поисковую систему в интернете вроде Гугла, Яндекса?
Я думаю, что создание своей поисковой системы не должно составить уж очень большую проблему для человека или группы знакомых с основами программирования. Сложнее будет, и это составит львиную долю в статье расхода, раскрутить свой поисковик на фоне уже состоявшихся деятелей от гугла или яндекса. Ведь популярность того или иного поисковика зависит от удобства работы, скорости выдачи искомых материалов и тех вкусностей, ради которых пользователи гугла или яндекса, с радостью переключатся на ваш поисковик. Это не так уж и трудно будет, конечно при наличии у вас таких задумок и их грамотной реализации в поисковой системе. В конце концов гугл тоже испытал те же трудности и вышел на теперешние позиции.
автор вопроса выбрал этот ответ лучшим
комментировать
в избранное ссылка отблагодарить
denik [20.2K]
9 лет назад
На самом деле создать поисковую систему в интернете, довольно таки легко, и не требует больших финансовых затрат. Для этого существует куча различных решений(скриптов систем) как платных, так и бесплатных. Но вот создать систему которая сможет конкурировать и окупить себя быстро очень тяжело.
Даже если иметь финансовые возможности для этого, выдержать конкуренцию с всеми привыкшими яндексом и гугле будет очень тяжело. Система должна быть не похоже на гугле или яндекс, чтоб люди начали пользоваться ей. Примеров много когда проект имея большие финансовые возможности не мог конкурировать легально с привыкшими нам поисковикам и прибегал даже к черным технологиям, когда устанавливался в качестве домашней страницы без ведома пользователя. Потому что на сегоднешней день переиграть гугле и яндекс и другие старые системы поиска без каких-то ноу-хао практически не реально.
Источник: www.bolshoyvopros.ru