Кеш і пошук
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
- Окремі ключі з обмеженими правами, зокрема безпечні для використання в браузері.
Приклад
Питання на співбесіді
1. Коли обрати Meilisearch замість Elasticsearch?
Коли потрібен швидкий користувацький пошук по обмеженому набору даних з мінімальним налаштуванням. Для великих кластерів, логів і складної аналітики краще Elasticsearch чи OpenSearch.
2. Що таке search-as-you-type?
Результати оновлюються після кожного введеного символу. Для цього рушій має відповідати за десятки мілісекунд і розуміти префікси слів.
3. Як безпечно використовувати Meilisearch з браузера?
Не передавати master key у фронтенд. Створити search-only ключ або tenant token з обмеженнями і використовувати його.
Схожі технології
- TypesenseTypesense це швидкий пошуковий рушій на C++ з толерантністю до помилок, фасетами та пошуком під час набору, що працює в памʼяті.
- ElasticsearchElasticsearch це розподілений пошуковий і аналітичний рушій на базі Lucene з REST API і JSON-документами.
- OpenSearchOpenSearch це відкритий розподілений пошуковий і аналітичний рушій, форк Elasticsearch 7.10 під ліцензією Apache-2.0.
Логотипи належать їхнім власникам і використані лише для ідентифікації. Іконки: Simple Icons (CC0), Devicon (MIT).