8 потужних пошукових 🔍 програмних засобів для вашого продукту

Можливо, це виглядає як складне завдання, але інтеграція потужної функції пошуку у вашу програму не вимагає значних зусиль. Пропонуємо вам кілька перевірених рекомендацій!

Попри значний прогрес у технологіях за останні десятиліття, пошук став невід’ємною частиною нашого життя. Він присутній всюди: на сайтах електронної комерції, блогах, базах знань. І це не тому, що пошуковий рядок і відповідна іконка мають привабливий вигляд, а тому що він виконує важливу функцію.

Якщо ви працюєте в компанії, яка шукає якісне рішення для пошуку, або вас не задовольняє існуючий варіант, що ви будете робити?

На щастя, вам не потрібно витрачати великі кошти на ліцензії, а також не потрібно підтримувати велику команду розробників і системних адміністраторів. Сьогодні я поділюся рекомендаціями щодо пошукових систем, які можна швидко встановити та інтегрувати, особливо для невеликих компаній з командою розробників з 1-2 осіб.

MeiliSearch

MeiliSearch – одна з найбільш якісних і цінних пошукових систем.

Чому я рекомендую саме MeiliSearch?

Ось кілька причин.

Відкритий вихідний код

Початковий код MeiliSearch є загальнодоступним на GitHub. Це означає, що розробники можуть самостійно перевірити будь-який фрагмент коду. Компанії можуть бути впевнені в якості та надійності, відсутності бекдорів чи сканерів. Досвідчені розробники можуть допомогти в подальшому вдосконаленні технології.

Зручний інтерфейс

MeiliSearch не використовує складні правила. Просто введіть пошуковий запит звичайним способом, і результати з’являться миттєво. Механізм дуже толерантний і адаптивний, забезпечуючи точні результати навіть за наявності помилок чи синонімів. Також підтримується багатомовність.

Зручний інструмент для розробників

Розробникам сподобається MeiliSearch! Система налаштовується, масштабується, працює через REST API! Документація є чудовою та вичерпною. Для тих, хто поспішає, є приклади для п’яти мов: JavaScript, Ruby, Python, Golang і PHP.

Прості пошукові рішення повинні бути легкими у використанні та налаштуванні. MeiliSearch відповідає всім вимогам! Якщо ви готові, почніть роботу на DigitalOcean в один клік.

Solr

Solr є частиною проекту Apache і існує вже багато років. Він розроблений на основі відомої та надійної бібліотеки Lucene, яка також підтримує популярне пошукове рішення ElasticSearch. Solr є одним із найпотужніших, масштабованих, сумісних зі стандартами, багатофункціональних і надійних рішень для пошуку.

Solr використовують такі гіганти, як Disney, eBay, Netflix, Zappos і BestBuy. Однак це не означає, що ви не можете запустити невелику, простішу інсталяцію на одній машині без масштабування і відновлення після збою. І все одно використовувати потужність системи Solr.

Отже, навіщо використовувати Solr?

Ось кілька вагомих причин.

Точний і продуктивний

Solr – одна з найточніших, найефективніших і найпотужніших пошукових систем. Крім того, це програмне забезпечення з відкритим кодом, що пояснює його популярність серед великих компаній. Його здатність аналізувати документи та відповідати на пошукові запити не має собі рівних.

Проста установка та обслуговування

Встановити Solr так само просто, як розпакувати та запустити програму. Для простих систем на одній машині не потрібне складне обслуговування. Слідкуйте за використанням оперативної пам’яті, оскільки пошукові рішення, а особливо технології на основі Java, потребують достатньої кількості пам’яті, щоб зберігати все необхідне для швидкого читання/запису.

Панель адміністратора

Solr має панель адміністратора для візуального моніторингу та налаштування. Навіть не розробники, після короткого навчання, можуть навчитися читати ключові таблиці. Не багато пошукових рішень у цьому списку мають такі функції.

Джерело зображення: офіційний сайт

Керування через API, відповідність стандартам

Solr надає інтерфейс результату в API, який підтримує кілька форматів — JSON, CSV, XML і двійковий. Він виводить дані моніторингу згідно зі стандартом JMX, що є значною перевагою для розробників Java.

Можна багато говорити про переваги Solr, але це займе багато часу. Solr – це першокласне рішення, і ви не помилитесь, вибравши його, незалежно від типу даних, з якими ви працюєте.

Elasticsearch

Elasticsearch був і, ймовірно, залишається лідером у сфері повнотекстового пошуку. Навіть сьогодні, якщо ви попросите програміста чи системного адміністратора порекомендувати пошукові системи, Elasticsearch, найімовірніше, буде першим, що вони згадають. Звичайно, зараз багато хто також рекомендує щось на зразок Algolia, але це окрема історія. 🤪

Нехай вас не вводить в оману кнопка “Почати безкоштовну пробну версію” на зображенні. Хоча основна технологія Elasticsearch є відкритою та безкоштовною, компанія намагається монетизувати свої зусилля, орієнтуючись на підприємства. Те, що ви бачите тут, – це пробна версія їхнього хмарного сервісу, який спрощує керування Elasticsearch, особливо коли використовуються кластери.

Підсумуємо: Elasticsearch є безкоштовним і відкритим, і кожен може легко налаштувати його та використовувати без обмежень.

А тепер, розгляньмо причини вибору Elasticsearch:

  • Надійна, перевірена пошукова система. Це означає, що ви з більшою ймовірністю знайдете рішення, якщо зіткнетеся зі складними помилками.
  • Зосереджена на кластеризації, масштабуванні та асинхронному записі.
  • Доступна через простий REST API.
  • Орієнтована на документи, але підтримує схему.
  • Швидкі та точні результати. Настроювана швидкість пошуку.
  • Чудова документація як за обсягом, так і за користю.
  • Повна хмарна платформа пошуку та аналізу (стек ELK), якщо ви бажаєте платити за зручність.

Єдиний недолік Elasticsearch – значне споживання оперативної пам’яті. Важко переконати клієнтів інвестувати в сервер за 20 доларів на місяць, що, на жаль, не відповідає вимогам Elasticsearch.

Якщо ви хочете глибше вивчити Elasticsearch, ознайомтеся з цим курсом на Udemy.

Typesense

Typesense – це легка, зрозуміла, але потужна пошукова система. Тим, хто цінує зручність і простоту, варто її спробувати.

Однією з переваг Typesense є можливість випробувати її прямо на веб-сайті. Це дозволить заощадити час і уникнути розчарування, якщо виявиться, що деякі функції не працюють так, як вам потрібно.

Пошук може відрізнятися залежно від сфери діяльності. Typesense дозволяє перевірити результати, які видає система, на головній сторінці (використовується база даних книг).

У полі пошуку введено запит “tra”, і нижче видно результати з бази даних книг (а також метадані: загальна кількість результатів, поточна сторінка тощо).

Переваги Typesense:

  • Технологія є відкритою.
  • Легко налаштувати HA (високу доступність), якщо це необхідно.
  • Толерантність до помилок і “шуму” в пошукових запитах.
  • Розширена система фільтрації для точного контролю результатів пошуку.
  • Простий REST API (документацію потрібно буде пошукати!).
  • Клієнти (SDK) доступні для деяких основних мов (JavaScript, Python, Ruby і PHP).

Typesense також пропонує хмарне рішення, де ініціалізація займає один клік. Оплата здійснюється погодинно, читання і запис не тарифікуються. Це гарний варіант для більшості компаній, які чітко визначилися з ціною.

Загалом, Typesense є хорошим вибором, якщо вам потрібно щось компактне, точне і надійне.

Sonic

Sonic позиціонує себе як альтернативу ElasticSaerch, яка працює на “кількох МБ оперативної пам’яті”.

Як це можливо?

Віртуальна машина Java (JVM) потребує оперативної пам’яті (зазвичай, запуск JVM займає близько 1 ГБ); тому не дивно, що щось, закодоване на мові Rust, може працювати так само швидко, використовуючи лише кілька МБ оперативної пам’яті.

Це талісман проєкту.

Sonic вже має кілька користувачів. Раніше я вже бачив Sonic і хоч був радий побачити альтернативу з малим обсягом пам’яті, тоді вважав, що потрібно дати час на стабілізацію та виправлення помилок. Здається, цей час настав; наскільки популярним стане Sonic, покаже час.

Чому вам варто розглянути Sonic для вашої організації/проєкту?

Ось кілька причин:

  • Дуже низьке споживання пам’яті, як для пошукових систем.
  • Бібліотеки доступні для всіх основних мов програмування. Node, PHP і Rust є розробками авторів, інші створені спільнотою.
  • Підтримка багатьох мов (близько 40-50 на момент написання).
  • Можна використовувати навіть нові мови (😂😂), хоча ви втратите деякі функції, такі як стоп-слова.
  • Дуже швидкий двигун. На їхній сторінці GitHub видно, що час прийому та пошуку в деяких випадках складав мікросекунди! Звісно, це були тести на одній машині, оскільки затримка мережі не дозволить отримати такі низькі цифри.

Щоб перевірити, як працює двигун, перейдіть за цим посиланням і пограйте з пошуковим рядком:

У Sonic є певні обмеження. Розробники відкрито обговорюють їх на сторінці GitHub. Перегляньте їх і переконайтеся, що ваші випадки використання не суперечать їхньому домену. Все має обмеження; просто вони приховані, і ми не усвідомлюємо цього, поки не стає запізно. Тому я вважаю Sonic чудовим вибором для пошукової системи.

TNTSearch

TNTSearch – цікава позиція в нашому списку. По-перше, ця повнофункціональна пошукова система розроблена на PHP!

Саме так, на PHP. І я кажу це не тому, що я ненавиджу PHP, а тому, що зазвичай це не найшвидший варіант.

Друга цікава річ — ліцензія, на момент написання. Ліцензія MIT не є проблемою, але автори класифікують програмне забезпечення як PS4Ware; якщо ви використовуєте TNTSearch у виробництві, ви повинні надіслати їм гру для PS4! Це не обов’язково, але це дуже кумедно. Сподіваюся, вони оновлять її до ліцензії PS5.

Я високо ціную зусилля цих розробників, оскільки сам маю досвід роботи з PHP + Laravel. На їхньому сайті нічого не сказано, але здається, що вони є консультантами, тому я рекомендую звертатися до них, якщо у вас є проєкти!

Чи є вагомі причини для використання TNTSearch у ваших проєктах?

Так, є:

  • Створено на PHP, для PHP. Екосистема PHP потребує якісних рішень, як це.
  • Такі важливі функції, як нечіткий пошук, географічний пошук і класифікація тексту.
  • Легко змінити пошуковий індекс.
  • Стемінг, рейтинг BM25 і спеціальна токенізація забезпечують високу точність.
  • Легке розгортання – як будь-який інший пакет Composer!

Ви можете перевірити продуктивність двигуна тут і переконатися, наскільки він швидкий і точний. Я знову наголошую на аспекті PHP: якщо ви працюєте з проєктом на PHP, ви хочете залишатися в його рамках. TNTSearch пропонує цінну пропозицію, від якої важко відмовитися!

Vespa

Vespa – це велике і складне рішення. Як і кілька інших позицій у цьому списку, його важко описати в кількох словах. Але я спробую. Vespa – це пошукова система, але її використання як звичайної пошукової системи не розкриє її потенціал.

Vespa розроблена для обробки великих обсягів даних (Big Data) і надання функцій машинного навчання та гнучких налаштувань.

Vespa позиціонує себе як конкурента Elasticsearch і традиційних баз даних, надаючи порівняння, коли та що використовувати.

Чим ближче ви до операцій, керованих машинним навчанням, тим вигіднішою стає Vespa. Для малого та середнього бізнесу, як чиста пошукова система, вона не має переваг над іншими варіантами.

Vespa є раціональним вибором, якщо ви постійно створюєте величезні обсяги даних і хочете покращити процес прийняття рішень за допомогою AI/ML (що є актуальним для багатьох SaaS-компаній):

  • Відкритий вихідний код. Немає дивних ліцензій і контрактів.
  • Працює в режимі реального часу. Vespa не тільки обробляє дані, що надходять, але й може змінювати конфігурацію “на льоту”.
  • Масштабована та надійна. Vespa масштабується і добре реагує на раптову втрату вузлів.
  • Рейтинг і рекомендації можна об’єднати зі структурованими запитами для отримання точних результатів.
  • Зручна інтеграція AI/ML. Vespa постачається з попередньо навченими моделями ML. Вам не потрібно наймати спеціалістів для обробки даних.
  • Користувацькі плагіни: є набір API для створення власних плагінів Java.

Vespa – це велике рішення, яке підходить для команд, які вже вийшли на певний рівень – розмір команди, технічна майстерність, бюджет інфраструктури, обсяг даних тощо. У цьому сегменті Vespa є найкращим вибором.

Ambar

Для деяких компаній пошукові дані не завжди акуратно представлені у вигляді документів JSON; це хаотична колекція різноманітних документів, таких як Word, PDF, HTML тощо. Якщо це ваш випадок, то познайомтеся з Ambar!

Ambar працює з різними типами файлів:

  • Формати MS Office (.docx, .xlsx тощо), включаючи PowerPoint, Visio та Publisher!
  • Формати OpenOffice.
  • PDF-документи з оптичним розпізнаванням символів для отримання інформації.
  • Зображення.
  • Формати архівів електронної пошти, наприклад PST (користувачі Outlook!).
  • Повідомлення електронної пошти з вкладеннями.

Ambar може працювати з великими файлами (понад 30 МБ), архівами ZIP і багатопотоковістю для швидких результатів. Якщо у вас є велика кількість документів на сервері, настав час використовувати Ambar!

Висновок

Пошук 🔎 – це потужна сила, і він є всюди!

Він може здаватися магією, але сьогодні немає причин, чому кожен (за допомогою розробників) не може скористатися його перевагами. Пошукові системи в цьому списку пропонують значні переваги та вплив, як для великих компаній, так і для окремих осіб.

Отримайте хмарний сервер і встановіть пошукове програмне забезпечення, яке вам сподобалося.