Обновить
46.86

Поисковые технологии *

От AltaVista до Яндекса

Сначала показывать
Порог рейтинга
Уровень сложности

Интернет изменился и больше не будет таким, как прежде

Время на прочтение6 мин
Количество просмотров92K

Помните, каким был интернет, когда вы только начали им пользоваться? Конечно, в зависимости от возраста кто-то из читателей приобщился к сети лет 10 назад, а кто-то подключался к ней через dial-up еще в 90-х (и оставлял семью без домашней телефонной линии). В любом случае интернет сегодня точно не тот, каким вы его помните при первом знакомстве. За последние 30 лет он прошел путь от места исключительно для игры в Counter Strike по сетке и кладезя постыдного контента до явления, на котором держатся гигантские корпорации и зарабатываются миллиарды. Давайте же посмотрим, как изменился интернет и почему это не всегда хорошо.
Читать дальше →

Создание приложения для обратного поиска изображений с помощью Manticore Search

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров1.6K

TL;DR: Узнайте, как создать приложение для обратного поиска изображений с использованием Manticore Search. В статье рассказывается об истории технологии, её устройстве и практических подходах к системам поиска изображений.

Введение

Обратный поиск изображений изменил способ поиска цифрового контента, позволяя искать с помощью изображений, а не текста. Эта технология широко используется: от помощи покупателям в поиске товаров до проверки дизайнов у дизайнеров. Она стала важным инструментом во многих цифровых платформах.

Попробуйте демо на image.manticoresearch.com или посмотрите реализацию на GitHub.

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

Читать далее

Что ищет он в краю далёком? Как найти смысл жизни с PostgreSQL

Уровень сложностиСредний
Время на прочтение31 мин
Количество просмотров7.7K

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

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

Вряд ли данная работа может похвастаться полнотой или глубиной, однако, я надеюсь, что она предоставит те самые “хорошие” точки входа, которые позволят, погружаясь в детали, открыть для себя множество новых интересных и полезных тем для исследований и инженерных проектов.

Откроем скрытые смыслы

Интернет тонет в спаме

Время на прочтение10 мин
Количество просмотров12K

Спам в каталоге пакетов npm

Интернет уже не тот, что в 90-е. Тогда мы искали интересные сайты по тематическим каталогам Yahoo и Рамблера. Поисковых систем не существовало до появления AltaVista. Даже мысли не было создавать мусорные сайты для прокрутки рекламы, продажи ненужных товаров или обмана людей. Коммерция ещё не пришла в интернет.

Сейчас совсем другое дело. Почти никто уже не воспринимает интернет как технологическое чудо и научный инструмент. Для мошенников это просто ещё один способ обмануть окружающих. Когда знакомый бизнесмен в начале 2000-х узнал про существование электронной почты, его первый вопрос был — как разослать тысячи писем со своей рекламой? Факт аморальности рассылки спама его совершенно не смутил на фоне потенциальной прибыли. У коммерсантов просто другая система ценностей.

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

Иногда кажется, что в интернете осталось только 5% полезного контента — и 95% спама.
Читать дальше →

Киберпсихология или паттерны и стили поиска информации

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров1.3K

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

Читать далее

Разбираемся с Vespa. Часть 2

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров907

Из этой статьи вы узнаете:

1) Что такое Document и Query Processing.

2) Как обрабатывается текст Vespa. Что такое токенизация и стемминг.

3) Какой из обработчиков текста лучше подходит для русского языка.

4) Как выполнить текстовый поиск.

5) Как происходит ранжирование результата.

Читать далее

Быстрее пули: как найти счастье с PostgreSQL

Уровень сложностиПростой
Время на прочтение24 мин
Количество просмотров18K

В этой статье мы расскажем о том, как эффективно реализовать полнотекстовый поиск с помощью PostgreSQL. Узнайте, как улучшить скорость и точность поиска по текстовым данным, используя такие инструменты, как tsvector, tsquery и индексы GIN, и как эти возможности могут значительно повысить производительность вашего приложения.

Читать далее

Полнотекстовый поиск vs. Векторный поиск

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров5.9K

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

Что такое полнотекстовый поиск? Полнотекстовый поиск – это классический метод поиска информации, который сопоставляет введённые вами слова. Он ищет не только точные совпадения, но также поддерживает такие функции, как поиск по префиксам и инфиксам, морфологическую обработку (например, стемминг и лемматизацию), и даже нечеткие методы поиска, такие как кворумный или поиск по близости. Это означает, что полнотекстовый поиск может быть довольно гибким – он помогает вам находить нужную информацию, даже если вы не уверены в точной формулировке.

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

Читать далее

Погружение в недра Apache Lucene: архитектура индекса, выполнение поиска и репликация данных

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров2.8K

Это перевод моей статьи в моем блоге про архитектуру Apache Lucene, про одну из самых известных библиотек реализации поискового индекса. Elasticsearch и Solr, широко известные реализации масштабируемых решений для поиска, они используют эту библиотеку под капотом. Я работаю над созданием решений для поиска в сфере электронной коммерции, и постоянно сталкиваюсь с этой библиотекой при повседневной работе. Apache Lucene реализует большую часть необходимого функционала для построения поисковой системы. Начиная с процесса токенизации, который извлекает канонические формы слов в виде токенов, продолжая полной реализацией инвертированного индекса, и завершая репликацией сегментов в режиме близком к реальному времени. Количество практически полезных фичей, реализованных за два десялилетия существования библиотеки, колоссально. Эта библиотека интегрирует знания из лингвистики, математики и компьютерных наук.

Инвертированный индекс

Apache Lucene реализует архитектуру инвертированного индекса. На уровне реализации логический индекс содержит коллекцию неизменяемых сегментов, хранящихся как файлы в файловой системе. Каждый сегмент сам по себе является инвертированным индексом. Такой индекс — это структура данных словаря с терминами в качестве ключей и данными по размещению (postings) в качестве значений. Постинг — это список идентификаторов документов и количеств вхождений термина в данном документе. Этот словарь использует Finite State Transducers, FST [1] для поиска терминов, что можно представить как нечто похожее на отсортированные списки с пропусками [2]. Такая отсортированная навигационная карта является краеугольным камнем для эффективного поиска по огромным обьемам документов. Lucene также очень эффективен в использовании памяти. Среди прочих алгоритмов, он использует алгоритмы кодирования разницами для сжатия идентификаторов документов в постингах [3]. Упрощенно идея этого сжатия заключается в сортировке списока целых чисел и сохранения дельт между ними. Это также повышает производительность операций ввода-вывода диска.

Читать далее

Кто стоит за убийством Google Search?

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров41K

Это история о том, как умер Google Search, и о причастных к его смерти людях.

Начинается она 5 февраля 2019 года, когда Бен Гомес, глава Google Search, столкнулся с проблемой. Джерри Дишлер, на тот момент вице-президент и главный управляющий Google Ads, вместе с Шивой Венкатараманом, тогда вице-президентом по разработке систем Google Search и Ads, объявили «код жёлтый» в отношении доходности Google Search. Причиной такого шага стало, цитирую: «Стабильно низкие ежедневные показатели», а также вероятность того, что к концу квартала доходность этого сегмента окажется в значительном упадке.
Читать дальше →

Полнотекстовый поиск в java приложениях с помощью Elasticsearch

Уровень сложностиПростой
Время на прочтение41 мин
Количество просмотров6.8K

Рассмотрим, как использовать Elasticsearch в качестве поискового движка в приложениях на Spring Boot. Поговорим о стратегии реализации полнотекстового поиска, эффективной индексации сущностей JPA и их связей. Уделим внимание использованию аннотаций полей, настройке релевантности с помощью весовых коэффициентов и реализации нечёткого поиска для обработки вариаций запросов. Также обсудим методы настройки синонимических связей, многоуровневых фильтров и ранжирования результатов по релевантности для повышения качества поиска.

Читать далее

Быстрый поиск опечаток на Rust

Время на прочтение6 мин
Количество просмотров1.7K

Мы запустили наш поисковик по Hacker News и RAG-движок с полусырой системой исправления опечаток. В нашей первой версии тратилось более 30 мс на обработку орфографически правильных запросов. Это достаточно много, поэтому по умолчанию мы отключили данную фичу. Наша новейшая версия работает в 100 раз быстрее, справляется за 300 мкс с корректно записанными запросами и тратит ~5 мс/слово на исправление ошибок. В этом посте мы объясним, как нам удалось этого добиться!

Читать далее

Применение OSINT-техник в сферах маркетинга, PR и HR

Время на прочтение3 мин
Количество просмотров3.4K

OSINT применим в сфере продаж и рекламы для анализа рынка, мнений потребителей, а также мониторинга конкурентов. Крупные компании в Европе активно используют OSINT-техники, которые помогают им эффективнее продвигать свои услуги и товары. 

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

GDQ: поиск конкурентов с помощью оператора related: данный дорк показывает нам похожие ресурсы, и его особенность в том, что поисковик ставит вас в позицию потенциального потребителя этих услуг.

Это даёт нам возможность узнать, какие ресурсы, по мнению алгоритмов, удовлетворяют ту же потребность, что и целевая компания. (что такое GDQ и как ими пользоваться)

Пример запроса: related:www.example.com

Кроме того, этот оператор можно использовать для поиска упоминаний компании по «картинкам» в таком случае дорк будет выглядеть следующим образом: related:«example.com» -site:«исследуемый офиц. сайт».(-site: подразумевает, что мы исключаем из выдачи всё связанное с указанным адресом) Стоит отметить, что для подобных целей есть масса других дорков, выдачи каждой отличаются, и порой кардинально: info:«company site/company name» -company site | inurl:«company name» intext:«company name» -company site | link:«company site» -site:«company site»

PR: ресерч ресурсов, где можно разместить рекламу: перед маркетологами часто стоит задача с поиском и анализом подходящих ресурсов, и не каждый потенциальный источник лидов станет сотрудничать.

Читать далее

Ближайшие события

VLM в Нейро: как мы создавали мультимодальную нейросеть для поиска по картинкам

Время на прочтение11 мин
Количество просмотров19K

Сегодня у Поиска большое обновление. Например, ответы Нейро теперь будут появляться сразу в поисковых результатах — для тех запросов, где это полезно и экономит время. Но в рамках этой статьи нас интересует другая часть обновления: Нейро поможет найти ответы в Поиске по картинкам и в Умной камере — с помощью новой мультимодальной модели Яндекса. Пользователь может не только узнать, что изображено на картинке, но и задать вопрос по каждой её детали. Например, гуляя по музею, можно сфотографировать натюрморт голландского живописца и спросить, что символизирует тот или иной предмет на картине.

Меня зовут Роман Исаченко, я работаю в команде компьютерного зрения Яндекса. В этой статье я расскажу, что такое визуально‑текстовые мультимодальные модели (Visual Language Models или VLM), как у нас в Яндексе организован процесс их обучения и какая у них архитектура. Вы узнаете, как Нейро работал с картинками и текстами раньше, и что изменилось с появлением VLM.

Читать далее

Новый нечёткий поиск и автодополнение в Manticore Search

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров2.7K

Краткое содержание


Мы рады представить две новые важные функции в Manticore Search: нечёткий поиск и автокорректировка запросов (или "автодополнение"). Эти функции улучшают возможности поиска, предлагая более удобный для пользователя опыт.

Читать далее

Как работает поисковое ранжирование для миллионов объявлений Авито

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров16K

Привет! Меня зовут Илья Валяев, я data science team lead поискового ранжирования в Авито. В статье расскажу, как у нас всё устроена система ранжирования, какие технологии используем и как именно улучшаем поисковые выдачи. 

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

Читать далее

Война за клики: Как позиции в Google влияют на CTR?

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров1.6K

Вам точно нужен топ-10? Сколько кликов достаются 1 месту в поиске? Как было 10 лет назад и как влияют на кликабельность сниппеты? Исследование показателей кликабельности в Google на основе данных аналитической компании Advanced Web Ranking.

Читать далее

Manticore + Laravel + Scout

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров2.4K

Простая интеграция поискового движка Manticore Search с фреймворком Laravel при помощи Laravel Scout и неофициального драйвера manticore-scout-engine.

Подробности

Как найти иголку в стоге сена? Или обозор Retrieval Algorithms

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров3.7K

Появление трансформеров, а впоследствии LLM (Large Language Models) привело к активному распространению чат-ботов и различных ассистентов помогающих в получении информации или генерации контента. Но несмотря на то что LLM способны по запросу генерировать человекоподобные тексты, они подвержены галлюцинациям. Естественным кажется желание уменьшить количество не достоверных ответов. Для этого мы можем либо дообучить LLM на наших данных, либо использовать Retrieval Augmented Generation (RAG)

RAG - это способ генерации текстов на новых данных без дообучения модели, с помощью добавления релевантных документов в промпт модели. Документы для генерации ищутся с помощью retrieval системы, после чего объединяются в один промпт и подаются в LLM для последующей обработки. В этой статье я решил собрать информацию о всех наиболее известных и применяемых алгоритмах поиска, с описаниями и материалами для более глубокого изучения.

Читать далее

Продолжение войны поисковиков. Давид и Голиаф, или борьба Google против ИИ-стартапов

Время на прочтение6 мин
Количество просмотров1.9K

Google вынужден войти в новую войну поисковых систем. Прямо как в начале нулевых. Но если раньше он был в позиции компании, которая дизраптит рынок за счет нового подхода, то теперь Google вынужден бороться с ИИ-стартапами, которые создают свои продукты для поиска информации. Колонка Джона Хермана для издания New York Magazine.

Читать далее

Вклад авторов