Elasticsearch: реляционная база данных против поискового движка — Битва Титанов

В мире разработки часто возникает соблазн использовать знакомый инструмент для всех задач. Зачем изучать что-то новое, если есть проверенная реляционная база данных (РСУБД), такая как PostgreSQL или MySQL? Однако, когда дело доходит до реализации мощного, быстрого и релевантного поиска, этот подход терпит неудачу. Elasticsearch — это не просто база данных, это распределенный поисковый и аналитический движок. В этой статье мы проведем детальное сравнение Elasticsearch и реляционных баз данных, разберемся в их архитектурных различиях и определим, когда каждый из инструментов становится титаном в своей нише. Чтобы статья была максимально практико-ориентированной, мы рассмотрим, как с помощью Spring Boot быстро поднять приложение с интегрированным Elasticsearch и реализовать поиск, который «летает».

https://habr.com/ru/companies/otus/articles/975368/

#Elasticsearch #реляционные_базы_данных #полнотекстовый_поиск #PostgreSQL #Spring_Boot #масштабирование_поиска #индексирование_данных

Elasticsearch: реляционная база данных против поискового движка — Битва Титанов

Автор статьи: Сергей Прощаев (@sproshchaev) Руководитель направления Java-разработки в FinTech   В мире разработки часто возникает соблазн использовать знакомый инструмент для всех задач. Зачем...

Хабр

Отправляем Elasticsearch в отпуск: полнотекстовый поиск на одном PostgreSQL

Зачем сразу тянуть в проект тяжёлую артиллерию типа Elasticsearch, если нужно просто поискать по тексту статей? Ведь у PostgreSQL есть свой, встроенный полнотекстовый поиск. Многие о нём забывают.

https://habr.com/ru/companies/otus/articles/970854/

#postqresql #программирование #полнотекстовый_поиск #ранжирование_поиска

Отправляем Elasticsearch в отпуск: полнотекстовый поиск на одном PostgreSQL

Зачем сразу тянуть в проект тяжёлую артиллерию типа Elasticsearch, если нужно просто поискать по тексту статей? Ведь у  PostgreSQL есть свой, встроенный полнотекстовый поиск. Многие...

Хабр

Полнотекстовый поиск на Rust с помощью библиотеки Tantivy

Привет, Хабр! Cегодня я хочу поделиться с вами опытом работы с библиотекой Tantivy — это полнотекстовый поисковый движок, написанный на Rust. Если вы когда‑либо задумывались о том, чтобы встроить поиск в свое приложение на Rust (вместо того чтобы поднимать отдельный ElasticSearch или Solr), то Tantivy неплохой такой кандидат. Библиотека вдохновлена Lucene (тем самым движком, на котором работают Solr и ElasticSearch) и дает схожие возможности: индексирование текста, быстрый поиск по ключевым словам, поддержку сложных запросов. Смотреть пример

https://habr.com/ru/companies/otus/articles/959244/

#rust #tantivy #полнотекстовый_поиск #индексирование_текста #быстрая_индексация

Полнотекстовый поиск на Rust с помощью библиотеки Tantivy

Привет, Хабр! Cегодня я хочу поделиться с вами опытом работы с библиотекой Tantivy  — это полнотекстовый поисковый движок, написанный на  Rust . Если вы когда‑либо задумывались...

Хабр

Интеграция Kafka с Manticore Search: пошаговое руководство по обработке данных в реальном времени

Kafka — это популярный брокер сообщений, который используется в самых разных проектах: от обработки логов и управления очередями задач до персонализации контента и аналитики в реальном времени. Например, его можно использовать для индексирования изменений в Википедии или поиска товаров в интернет-магазинах. Manticore Search, в свою очередь, поддерживает интеграцию с Kafka, что позволяет автоматически импортировать данные и использовать их для полнотекстового поиска, аналитики, векторного поиска и многого другого. При импорте данных в Manticore вы можете гибко их обрабатывать:

https://habr.com/ru/articles/902758/

#kafka #materialized_view #fulltext_search #полнотекстовый_поиск #json #dockercompose

Интеграция Kafka с Manticore Search: пошаговое руководство по обработке данных в реальном времени

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

Хабр

[Перевод] Поиск изображений по тексту с Manticore Search

Кратко: Узнайте, как Manticore Search даёт возможность искать изображения по текстовому описанию, совмещая обработку естественного языка и поиск по векторным представлениям. Мы рассмотрим разные пути — от классических методов до современных решений на базе векторного поиска. А если хотите увидеть всё в реальном времени, загляните в наше демо.

https://habr.com/ru/articles/870782/

#векторный_поиск #полнотекстовый_поиск #поисковые_системы #поиск_по_изображениям

Поиск изображений по тексту с Manticore Search

Кратко: Узнайте, как Manticore Search даёт возможность искать изображения по текстовому описанию, совмещая обработку естественного языка и поиск по векторным представлениям. Мы рассмотрим разные пути...

Хабр

[Перевод] Разбираем алгоритм полнотекстового поиска BM25

BM25, или Best Match 25 — это широко используемый алгоритм полнотекстового поиска. Среди прочего, он по умолчанию применяется в Lucene/Elasticsearch и SQLite. В последнее время в рамках «гибридного поиска» часто начали комбинировать полнотекстовый поиск и поиск по схожести векторов. Мне захотелось понять, как работает полнотекстовый поиск и в частности BM25, поэтому в этой статье я постараюсь разобраться в этом.

https://habr.com/ru/articles/860830/

#bm25 #поисковые_алгоритмы #релевантность #полнотекстовый_поиск #алгоритмы_поиска

Разбираем алгоритм полнотекстового поиска BM25

BM25, или Best Match 25 — это широко используемый алгоритм полнотекстового поиска. Среди прочего, он по умолчанию применяется в Lucene/Elasticsearch и SQLite. В последнее время в рамках «гибридного...

Хабр

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

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

https://habr.com/ru/articles/853124/

#fulltextsearch #полнотекстовый_поиск #postgresql #gin #базы_данных #базы_данных #индекс #индексация

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

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

Хабр

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

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

https://habr.com/ru/articles/852242/

#полнотекстовый_поиск #векторный_поиск #поисковые_системы

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

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

Хабр

Репликация: создание кластера, подключение, изменения настроек таблицы в кластере

Привет, я Майк. Недавно я начал работать в компании Manticore на должности Developer Advocate. Я не совсем далёк от ИТ, но сейчас активно осваиваю современные технологии. В этом блоге я буду делиться своим опытом и тем, что узнаю о Manticore. Я планирую вести дневник, где буду рассказывать, что такое Manticore и как с ним работать. Давайте вместе разбираться, как все устроено, выявлять проблемы и взаимодействовать с разработчиками. Если вам интересно изучать Manticore вместе со мной, я буду держать вас в курсе в:

https://habr.com/ru/articles/834980/

#open_source #репликация_баз_данных #кластеризация #docker #sql #manticore #galera #полнотекстовый_поиск #data_replication

Репликация: создание кластера, подключение, изменения настроек таблицы в кластере

Об авторе Привет, я Майк. Недавно я начал работать в компании Manticore на должности Developer Advocate. Я не совсем далёк от ИТ, но сейчас активно осваиваю современные технологии. В этом блоге я буду...

Хабр

ElasticSearch — поиск последовательности в тексте

Привет! На связи Аркадий из Т-Банка, мы по прежнему делаем TQM, и в этой статье покажу, как мы решили задачу с поиском последовательностей в тексте коммуникаций. Это работает как на простых цепочках из словосочетаний по порядку, так и на сложных кейсах — со временем фразы, каналом «клиент — оператор». Мы по прежнему работаем с ElasticSearch, оставляя возможность “накрутить” на поиск по тексту такие вещи как RAG, LLM и другие модные технологии. Несколько ограничений для сегодняшней задачи: - Нелинейное возрастание сложности запроса при увеличении количества фраз. Поэтому предел у нас 4. - Шаг тайминга мы выбрали 5 секунд. После каждой фразы ставим метку времени или несколько меток, если фраза заняла больше 5 секунд. Если сделать шаг слишком мелким это позволит искать более точно, но замусорит наше поле метками времени. Кажется, это тот момент когда лучше заранее договориться о требованиях. А теперь к самому интересному. Добро пожаловать под кат!

https://habr.com/ru/companies/tbank/articles/831498/

#elasticsearch #fulltextsearch #полнотекстовый_поиск

ElasticSearch — поиск последовательности в тексте

Привет! На связи Аркадий из Т-Банка, мы по прежнему делаем TQM, и в этой статье покажу, как мы решили задачу с поиском последовательностей в тексте коммуникаций. Это работает как на простых цепочках...

Хабр