Кеш і пошук

Meilisearch

Meilisearch це швидкий пошуковий рушій на Rust з миттєвим пошуком під час набору, толерантністю до помилок і простим налаштуванням.

Що це

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

Це один бінарний файл на Rust із REST API. Індекс зберігається на диску, документи це JSON. Є фільтри, фасети, сортування, синоніми, а також гібридний і векторний пошук.

Розробляє його французька компанія Meili. Open source версія (Community Edition) під MIT, окремі enterprise-можливості та хмарний сервіс Meilisearch Cloud платні.

Коли брати

  • Потрібен швидкий пошук по каталогу товарів, документації чи блогу.
  • Хочете працювати з коробки без налаштування аналізаторів.
  • Потрібна толерантність до друкарських помилок і пошук під час набору.

Коли не варто

  • Потрібна аналітика логів із важкими агрегаціями на терабайтах.
  • Потрібні розширені запити та експлуатація великого кластера: тут сильніші Elasticsearch та OpenSearch.

Ключові поняття

Typo tolerance
Пошук знаходить слово з однією-двома помилками в запиті.
Ranking rules
Впорядкований список правил релевантності: слова, друкарські помилки, близькість, точність.
Filterable attributes
Поля, дозволені для фільтрів і фасетів, їх потрібно оголосити в налаштуваннях індексу.
API keys
Окремі ключі з обмеженими правами, зокрема безпечні для використання в браузері.

Приклад

Додаємо документ і шукаємо із друкарською помилкою: incepton знайде Inception.

Питання на співбесіді

  1. 1. Коли обрати Meilisearch замість Elasticsearch?

    Коли потрібен швидкий користувацький пошук по обмеженому набору даних з мінімальним налаштуванням. Для великих кластерів, логів і складної аналітики краще Elasticsearch чи OpenSearch.

  2. 2. Що таке search-as-you-type?

    Результати оновлюються після кожного введеного символу. Для цього рушій має відповідати за десятки мілісекунд і розуміти префікси слів.

  3. 3. Як безпечно використовувати Meilisearch з браузера?

    Не передавати master key у фронтенд. Створити search-only ключ або tenant token з обмеженнями і використовувати його.

Логотипи належать їхнім власникам і використані лише для ідентифікації. Іконки: Simple Icons (CC0), Devicon (MIT).

Розділи платформи