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

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

Хоча за останні 2-3 десятиліття багато технологій вразили, пошук є одним із небагатьох, які стали невід’ємною частиною нашого життя. Він всюди — сайти електронної комерції, блоги, бази знань тощо — не тому, що вікно пошуку та піктограма виглядають круто, а тому, що він робить те, що вкрай необхідно.

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

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

MeiliSearch

MeiliSearch – одна з найкращих і цінних пошукових систем, які ви зустрінете.

Отже, що змушує мене включити MeiliSearch до моїх найкращих рекомендацій?

Ось іде.

Відкрите джерело

Весь вихідний код, який підтримує MeiliSearch, доступний у відкритому вигляді на GitHub. Це означає, що розробники можуть перевірити будь-яку частину коду самостійно. Натомість підприємства можуть бути впевнені в якості та намірі (наприклад, у програмі немає бекдорів чи сканерів). І, звичайно, досвідчені розробники можуть допомогти ще більше вдосконалити технологію.

Чудовий UX

MeiliSearch не має складних правил (наприклад, «a – b» означає a, але не b). Просто введіть пошуковий запит природно, і результати почнуть відображатися плавно. Механізм дуже толерантний і адаптивний, забезпечуючи точні результати, навіть якщо використовуються помилки або синоніми. Він також підтримує кілька мов.

Чудовий DevEx

Розробникам сподобається MeiliSearch! Його можна не лише налаштовувати та масштабувати, а й працювати як REST API! Документація також чудова та повна. Хоча здійснення HTTP-дзвінків є тривіальним для будь-якої мови, для тих, хто дуже поспішає, наведено приклади з п’яти мов (JavaScript, Ruby, Python, Golang і PHP).

Прості пошукові рішення мають бути простими у використанні та налаштуванні. Таким чином, MeiliSearch перевіряє всі поля! Коли ви задоволені продовженням, почніть роботу на DigitalOcean одним клацанням миші.

Solr

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

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

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

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

Точний і потужний

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

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

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

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

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

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

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

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

  Як увімкнути та вимкнути ваш Mac

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

Elasticsearch

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

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

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

А тепер, як і очікувалося, давайте зануримося в причини вибору Elasticsearch:

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

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

Якщо вам цікаво вивчити Elasticsearch, перегляньте цей курс Udemy.

Typesense

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

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

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

Як бачите, цей розділ знаходиться прямо під самим верхнім. У полі пошуку я ввів запит «tra», і нижче я бачу відповідні результати з бази даних книг (а також метадані — загальні результати, поточна сторінка тощо).

Typesense має багато переваг, коли справа доходить до вибору пошукової системи:

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

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

Загалом, Typesense має великий сенс (без каламбуру!), якщо вам потрібно щось маленьке, гладке, точне та справжня робоча конячка.

  Як змінити своє місцезнаходження в Pokémon Go

Соник

Sonic пишається тим, що є альтернативою ElasticSaerch, яка працює на «кількох МБ оперативної пам’яті».

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

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

Розслабтеся, всі! Це просто талісман проекту.

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

Гаразд, якщо залишити в стороні довгі роздуми, чому вам варто розглянути можливість використання Sonic для вашої організації/проекту?

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

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

Якщо ви хочете побачити цей механізм у дії, перейдіть за цим посиланням (одна з їхніх компаній-користувачів) і пограйте з вікном пошуку, яке ви бачите там:

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

TNTSearch

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

Так, з усіх можливих мов PHP. І я кажу це не тому, що я ненавиджу PHP, а тому, що це короткочасний процес за задумом.

Друга цікава річ — це їх ліцензія, принаймні на момент написання. Власне, сама ліцензія MIT, тому проблем немає, але автори класифікують це програмне забезпечення як PS4Ware; якщо ви використовуєте TNTSearch у виробництві, ви повинні надіслати їм гру для PS4! 😂😂 Тепер це не є обов’язковим, як вказує «треба», але це неймовірно смішно. Я також сподіваюся, що вони оновлять його до ліцензії PS5, хоча зараз це занадто рано.

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

Тепер, чи є вагомі причини використовувати TNTSearch у ваших проектах?

Так, є:

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

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

  Як записати закадровий оповідь у PowerPoint

Vespa

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

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

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

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

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

  • Відкритий вихідний код: жодних дивних ліцензій і контрактів на перехоплення. І нічого платити на додаток до цього, хоча я завжди наголошую, що компанії платять регулярну суму за проекти, якими вони найчастіше користуються (навіть 50 доларів на місяць їм дуже допоможе).
  • У режимі реального часу: Vespa справді працює в режимі реального часу. Він не може лише переварювати, обробляти та шукати дані, що надходять; навіть його конфігурацію можна змінювати на льоту.
  • Масштабований і толерантний: Vespa просто масштабується. Він також дуже добре реагує на раптове зникнення вузлів, забезпечуючи високу надійність.
  • Рейтинг і рекомендації: пошук, рейтинг і рекомендації Vespa можна об’єднати зі структурованими запитами, щоб отримати справді точні результати.
  • Безболісний штучний інтелект/ML: Vespa постачається в комплекті з високоякісними, попередньо навченими моделями ML. Вам не потрібно наймати 20 спеціалістів із обробки даних, щоб очистити та використовувати ваші дані.
  • Користувацькі плагіни: існує повний набір API, які допомагають розробникам створювати власні плагіни Java, якщо їм потрібно змінити роботу механізму.

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

Амбар

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

Найкраще в Ambar — це великі типи файлів, з якими він може працювати:

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

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

Висновок

Пошук 🔎 — потужний, пошук — це магія, і пошук є всюди!

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

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