Способы создание поисковой системы

Как правильно организовать поиск в Интернете

Проблема поиска во Всемирной паутине не в том, что информации мало, а в том, что ее много. Поиск информации в Интернете — краеугольный камень эффективной работы в Сети. Владение навыками поиска делает Интернет для пользователя полезным как во время работы, так и во время отдыха.
Для организации поиска в Интернете существуют специализированные службы, называемые поисковыми системами.

Поисковые системы.

Поисковые системы — программно-аппаратный комплекс с web -интерфейсом, предоставляющий возможность поиска информации в Интернете.
Большинство поисковых систем ищут информацию на сайтах Всемирной паутины, но существуют также системы, способные искать файлы на FTP-серверах, товары в интернет-магазинах, а также информацию в группах новостей Usenet. Для поиска информации с помощью поисковой системы пользователь формулирует поисковый запрос. По запросу пользователя поисковая система генерирует страницу результатов поиска. Такая поисковая выдача может сочетать различные типы файлов, например: веб-страницы, изображения, аудиофайлы. Некоторые поисковые системы также извлекают данные из баз данных и каталогов ресурсов в Интернете.
Цель поисковой системы заключается в том, чтобы находить документы, содержащие либо ключевые слова, либо слова как-либо связанные с ключевыми словами. Поисковая система тем лучше, чем больше документов, релевантных запросу пользователя, она будет возвращать. Результаты поиска могут становиться хуже из-за особенностей алгоритмов. Например, на запрос домашние животные поисковый сервер «Яндекс» (подробнее о нем см. ниже) выдает более 14 000 000 ссылок на страницы, содержащие нужные, на его взгляд, сведения. Однако далеко не все так гладко: при посещении некоторых найденных страниц выясняется, что искомой информации на них недостаточно, а то и вовсе нет.
Чтобы искать с максимальной результативностью необходимо знать как работают поисковые серверы и правильно составлять запрос на поиск информации.

Принципы работы поисковых систем

Поисковые системы работают, храня информацию о многих web -страницах, которые они получают из HTML страниц. Основные составляющие поисковой системы: поисковый робот, индексатор, поисковик. Обычно системы работают поэтапно. Сначала поисковый робот получает контент, затем он просматривает содержимое web -сайтов. Только после этого индексатор генерирует доступный для поиска индекс. Индексатор — это модуль, который анализирует страницу, предварительно разбив её на части, применяя собственные лексические и морфологические алгоритмы.
В основе работы большинства современных поисковиков лежит индекс цитирования, который вычисляется индексатором в результате анализа ссылок на текущую страницу с других страниц Интернета. Чем их больше, тем выше индекс цитирования анализируемой страницы, тем выше эта страница будет отображена в результатах поиска и тем выше страница будет представлена в списке найденных ресурсов.

Правила построения поисковых запросов

Как уже отмечалось, в Интернете существует множество поисковых серверов, отечественных и зарубежных.
Российские поисковые серверы: Яндекс (www.yandex.ru); Рамблер (www.rambler.ru); Апорт (www.aport.ru) и Gogo ( www . gogo . ru ).

Зарубежные поисковые серверы: Google ( www . google . com ); Altavista ( www . altavista . com ) и Yahoo ! ( www . yahoo . com ).
Для поиска на русском языке лучше подходят российские серверы, на иностранном — зарубежные, хотя, Google неплохо справляется с поиском на многих языках. Несмотря на заявления многих владельцев поисковых систем, что запросы могут быть написаны практически на языке, который люди используют для общения между собой, это далеко не так. Благодаря внедрению новых языковых технологий поисковые системы стали гораздо лучше понимать пользователя. Поисковики теперь ищут не только запрашиваемое слово, но и его словоформы, что позволяет делать результаты поиска более точными. Например, если в поисковом запросе присутствует слово умный, то его результаты будут содержать не только это слово, но и его производные: умного, умная, а также ум и даже разум. Естественно, страницы со словоформами будут не в числе первых результатов поиска, но элементы искусственного интеллекта налицо. Этот факт полезно учитывать при построении поисковых запросов.
Следует помнить о том, что поисковые системы при обработке запроса не учитывают регистр символов, а применять знаки препинания в поисковых запросах вовсе не обязательно, так как они также игнорируются поисковыми серверами. Однако при построении сложных расширенных запросов, результаты поиска по которым обычно гораздо ближе к ожидаемым, используют традиционные знаки препинания. Большинство поисковых систем может бороться с опечатками. Если поисковому серверу покажется, что в слове допущена ошибка или опечатка, то он предупредит об этом той же фразой: Быть может, вы искали….

Читайте также:  Способы разделения смесей химия хроматография

Cлова для запроса поисковому серверу

Есть выражение «Машина должна работать, человек — думать», и сказано оно как раз о такой ситуации. Задача пользователя при составлении поискового запроса — выделить ключевые слова, задача поискового сервера — наилучшим образом обработать введенный запрос. Рассмотрим пример, иллюстрирующий типичные ошибки начинающих пользователей при поиске в Интернете. На запрос «Загадки о музыкальных инструментах» поисковик не выдал полезных результатов. Тогда пользователь решает исправить запрос, дополнив его и написав: «Загадки для детей о музыкальных инструментах» — результаты поиска оказались еще хуже предыдущего. Для данного примера неплохим решением явился поиск по ключевому слову «загадки». В Интернете много таких сайтов, а зайдя на сам сайт и немного поискав по его разделам, вполне можно найти интересующую информацию. Сформулируем несколько правил составления запросов:

  • выбирайте только самые важные ключевые слова, касающиеся рассматриваемой темы;
  • слов не должно быть слишком много, но и не слишком мало;
  • при неудовлетворительных результатах поиска, используйте более «мягкие» условия для запроса или попробуйте поискать в другой поисковой системе, т.к. механизмы работы поисковиков неодинаковые, следовательно, результаты также могут различаться.

Расширенный поиск

Для обеспечения более эффективного поиска в Интернете поисковые системы предоставляют возможность расширенного поиска, а также поиска с использованием языка запросов. Расширенный поиск — возможность поиска с указанием множества различных параметров. Для этого в поисковиках предусмотрены отдельные страницы, на которых можно задать такие параметры. Принципы работы расширенного поиска похожи у большинства поисковиков.
Рассмотрим дополнительные возможности поиска на примерах поисковиков Яндекс и Google потому что Яндекс — самый популярный поисковый сервер в русскоязычном Интернете, а Google — самый популярный поисковик в мире. При поиске в Интернете «Яндекс» одним из первых стал учитывать морфологию русского языка, то есть использовать различные формы слова, о чем говорилось выше. Зайдя на сайт www.yandex.ru, пользователь может ввести запрос и тут же получить результаты поиска, а можно использовать ссылку Расширенный поиск, используя пиктограмму , и перейти на соответствующую страницу (см. рисунок ниже), на которой тонко настроить параметры поиска.

Страница расширенного поиска «Яндекса»

Рассмотрим дополнительные возможности, которые можно использовать на странице расширенного поиска: указать собственное местоположение (Москва), указать в каком виде должна быть представлена информация (Тип файла), период времени в котором ищем информацию (за сутки, за 2 недели, за месяц, От..До), на каком языке должна быть представлена информация (Русский, Английский Еще), а также можно указать URL -адрес сайта и т.д
Выбор (Точно как в запросе) указывается поисковику для того, чтобы морфологию слов запроса не изменять, а искать только ту форму слова, которая задана.

Язык запросов

Язык запросов — система команд, позволяющая изменять параметры запроса из основной строки поиска с помощью специальных команд. Ориентирован на опытных пользователей.
Поскольку язык запросов достаточно сложен и объемен, приведем лишь основные его конструкции, которые могут быть наиболее востребованы пользователями. Некоторые команды языка запросов «Яндекса» представлены в таблице.

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

Допустимо использовать несколько операторов + в одном запросе.

Будут найдены документы, в которых обязательно содержатся слова «бульвар» и «Москва» и может присутствовать слово «шолохов».

Поиск по цитате.

Поиск документов, содержащих слова запроса в заданной последовательности и форме.

Будут найдены документы, содержащие данную цитату.

Поиск по цитате с пропущенным словом (словами).

Один оператор * соответствует одному пропущенному слову.

Внимание! Используется только в составе оператора «.

Оператор отделяется пробелами.

Будут найдены документы, содержащие данную цитату, включая пропущенное слово.

Будут найдены документы, содержащие данную цитату, включая пропущенные слова.

Источник

Как создать свой поисковик и возможно ли это сделать самостоятельно?

Каждый пользователь в и нтернете может назвать несколько популярных поисковых систем. Но при это м некоторые из них не оставляют идею создать собственную такую систему, поэтому вопрос: «Как создать свой поисковик?» остается на слуху.

Свой поисковик может быть двух типов :

большая поисковая система, которая будет работать по всему и нтернету и составлять конкуренцию Google, Яндекс, Bing и др. ;

небольшой поисковик, организованный на своем сайте с различными свойства поиска.

Читайте также:  Способы быстро вылечить синяк

Как создать свой поисковик и создать конкуренцию известным «поисковым гигантам»

Создать свой поисковик на подоби е Гугла и Яндекса , на самом деле , не так сложно. Любой более-менее уверенный в себе разработчик сможет это сделать. Любой поисковик состоит из 3-х основных элементов:

Базы данных с сайтами для их индекса.

Поисковый робот, который будет обходить сайты и обновлять /добавлять информацию о них в базу данных.

Техническая реализация поисковой системы не так сложна, как кажется. Плюс в сети есть уже много готовых скриптов как платных, так и бесплатных, с помощью которых вы сможете реализовать свою идею. Создать свой поисковик можно самостоятельно или в небольшой команде. В принципе, если найти соратников в команду, которые готовы поработать на голом энтузиазме, создать свой поисковик можно практически бесплатно.

Но проблема в другом. Сможете ли вы создать действительно конкурирующий программный продукт? Ведь для того, чтобы конкурировать с известными поисковиками, вам нужно будет:

нанять высококвалифицированных специалистов и организовать им рабочее пространство;

оборудовать собственный дата-центр или арендовать мощности у надежной компании;

быть готовым в течение нескольких лет терпеть убытки.

И при этом никто не даст гарантий, что ваш поисковик станет популярным и вы сможете его монетизировать. Потому что пока вы будете развивать свой продукт, Гугл с Яндексом также будут развиваться. А чтобы их «переплюнуть» , вам нужно будет внедрить в свой продукт какую-нибудь «фишку» или ноу-хау, чтобы переманить к себе пользователей — это что касается функционала. А с технической стороны ваш поиск должен быть точнее, быстрее и эффективнее, чем у ваших конкурентов, чтобы пользователи это «почувствовали» и перешли на вашу сторону.

Почему люди в основном пользуются Гуглом или Яндексом (или другими)? Потому что им там комфортно и им там нравится. Поэтому, чтобы пользователи перешли именно к вашему поисковику, вы должны стать лучше.

Вот и получается, что создать свой поисковик не трудно, но вот развивать его и сделать конкурентоспособным — на это потребуется не мало усилий и финансовых вложений. Но с другой стороны, Гугл тоже когда-то был в позиции «новичка», а в кого он превратился спустя годы упорного труда — мы все прекрасно видим.

Другое дело с локальными поисковиками, которые вы можете организовать на собственном сайте.

Как создать небольшой локальный поисковик на своем сайте

Небольшой локальный поисковик — это более «приземленная» идея поисковой системы. И в некоторых ситуациях подобный поисковик будет работать эффективнее, чем глобальный Гугл с Яндексом. Например, когда вам нужно ограничить объем поиска. Допустим , у вас есть некий веб — ресурс, который ведет взаимоотношения с 500 поставщиками и 400 различными партнерами, плюс в качестве дополнительной информации вы используете еще 900 разных источников. Вы можете организовать собственную поисковую систему на 1000+ источников, чтобы вашим клиента м было проще искать нужную информацию, касающуюся ваших услуг или товаров. Если они будут это делать через глобальную поисковую систему, то в выдаче у них будет очень много «мусора», который , по сути , им никогда не пригодится. А ваша ПС даст именно те результаты, которые нужны вашим клиентам.

В качестве дополнения собственная тематическая ПС — это:

удобство поиска для ваших клиентов;

дополнительный способ монетизации вашего проекта;

много плюсов к вашему престижу, брендингу и узнаваемости.

Что самое интересное — подобные локальные системы организовать довольно просто. В сети есть масса готовых решений по этому поводу. Сам ое узнаваем ое решени е — это создать свой поисковик, используя поисковый потенциал Google. Для этого пройдите по ссылке .

Заключение

Теперь вы знаете, как можно создать свой поисковик. Если это будет глобальная поисковая система, то к этому нужно подготовит ь ся финансово и морально. Если локальный поисковик на собственном сайте, то самый простой способ — это использовать готовое решение. При этом если вы с программированием на «ты», то для вас не составит труда создать свой собственный поисковик с нуля.

Мы будем очень благодарны

если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.

Источник

Как и зачем я создал свой поисковик Pick: история создания и примеры кода

Авторизуйтесь

Как и зачем я создал свой поисковик Pick: история создания и примеры кода

ведущий full-stack программист в RevolveR Labs

Поскольку Яндекс не захотел парсить мои сайты сославшись на то, что они не умеют обрабатывать контент в формате deflate мне захотелось разобраться в чем дело и попробовать написать свой поисковый сервис. Вообще служба техподдержки Яндекс оказалась для меня бесполезной, поскольку два дня Платоны доказывали мне, что сайты на Revolver CMF отдают битую кодировку. В то же время это был просто сжатый в deflate HTML. В итоге я решил написать свой индексатор, который умеет индексировать сжатый HTML и не только.

Читайте также:  Указать способ словообразования подоконник

Создавать было решено антибюрократический Open Source поисковик, ранжирующий результаты в выдаче на основе голосов зарегистрированных пользователей без участия модерации.

Название мы с друзьями выбрали созвучно всем известной Picus Networks из мира компьютерной игры DeusEx. Осталось создать два алгоритма Pick для выполнения запросов и Picker для индексации контента.

Как создавался Pick

Можно было реализовать поисковую систему отдельно, но я использовал framework RevolveR, который предоставляет доступ к API работы с базой данных и ее кэширование, обработку POST и GET запросов с защитой, а также fetch API для динамических запросов.

3–5 декабря, Онлайн, Беcплатно

А после интеграции Pick стал частью ядра. Скачать RevolveR CMF можно со страницы проекта GitHub.

Создаем индекс в базе данных

Очевидно, что нам нужен свой поисковый индекс, который будет храниться в базе данных. Для этого сформируем структуру на SBQ (structure based queries), которая хранится в файле /Kernel/Structures/DataBase.php:

Мы создали структуру будущей таблицы revolver_index, которую будут использовать модели для записи и хранения данных. Полям content , description и title назначаем полнотекстовый индекс для ускорения запросов SELECT, а для поля host укажем тип индекса simple (это поможет сделать быстрый поиск по всем индексированным ссылкам определённого ресурса).

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

Поле uri будет содержать полную ссылку страницы.

Теперь нам понадобится таблица в БД которая будет хранить рейтинги материалов в формате 5 звезд на основе голосов зарегистрированных пользователей (API для рейтингов есть и о том как оно работает чуть ниже).

Создадим еще одну структуру:

Таблица очень простая. Она хранит ID ресурса, ID пользователя и оценку.

Давайте зарегистрируем структуры в схеме базы данных:

Таблицы сформированы и описаны и нам осталось выполнить SBQ через API RevolveR CMF для создания этих таблиц в базе данных:

После выполнения этого кода в базе данных появится таблицы revolver__index и revolver__index_ratings, а мы сможем использовать API моделей для работы с ними.

Регистрируем сервис индексации и страницу поиска

В RevolveR CMF есть такое понятие как сервисы. Они используются для выполнения каких-то задач при обращении к ним с аргументами, но не имеют кэширования и не обрабатываются шаблоном.

Чтобы зарегистрировать сервис индексации просто пропишем параметры в файл /private/config.php:

Здесь все предельно просто. Type service указывает на то, что URL /picker/ будет служить обработчиком запросов, которые избегают систему кэширования фреймворка и игнорируют формирование шаблона.

Теперь сразу же зарегистрируем путь, который будет отображать страницу выполнения поисковых запросов к базе данных. Для этого в этом же файле добавим строки:

Параметр menu указывает на то, что мы отображаем пункт в главном меню, а type равное node указывает на то, что регистрируемый путь является узлом, который подвергается кэшированию по умолчанию и может быть подключен к шаблону.

Мы зарегистрировали 2 URI и теперь нужно подключить обработчики сервиса и узла. Поскольку было решено сделать Pick компонентом ядра, мы модернизируем файл /Kernel/Modules/Switch.php:

Этими строками мы создали подключение NodePick и RoutePicker, которые будут содержать основные исходные коды алгоритмов поискового движка. Нам достаточно всего 2 файла.

Индексатор URL Picker

Чтобы проиндексировать какой либо сайт мы должны иметь доступ по сети и уметь парсить сайты. Для этого была использована стандартная библиотека cURL для PHP.

Вот исходный код функции, которая открывает URL и достает содержимое страницы:

Работает алгоритм очень просто. При передаче URL происходит открытие web-страницы и обработчик проверяет корректность SSL соединения. Далее мы смотрим что тип документа характеризует ценные для нас данные HTML или Application xHTML, а также проверяем код ответа сервера. Все, что препятствует получению данных приводит к возврату значения null .

Дополнительно проверяем, что отдаваемый сервером контент может быть сжатым в gzip, deflate или compress.

Теперь нам нужна функция для работы с самим полученным документом. Мы должны извлечь текстовое содержимое без тегов и получит все ссылки на странице:

Источник

Оцените статью
Разные способы