Кеш і пошук
OpenSearch
OpenSearch це відкритий розподілений пошуковий і аналітичний рушій, форк Elasticsearch 7.10 під ліцензією Apache-2.0.
Що це
OpenSearch зʼявився у 2021 році, коли Elastic змінила ліцензію Elasticsearch. AWS зробила форк Elasticsearch 7.10 та Kibana й випустила їх як OpenSearch і OpenSearch Dashboards.
У 2024 році проєкт перейшов під OpenSearch Software Foundation у складі Linux Foundation, тож ним керує нейтральна організація, а не одна компанія.
Технічно це той самий клас систем: Lucene, шарди, реплікація, REST API. Окрім пошуку, є вбудовані плагіни для безпеки, SQL-запитів, векторного та нейронного пошуку. Він доступний як керований сервіс Amazon OpenSearch Service.
Коли брати
- Потрібен пошук чи аналіз логів із чистою ліцензією Apache-2.0.
- Працюєте в AWS і хочете керований сервіс.
- Хочете нейтральне управління проєктом без залежності від однієї компанії.
Коли не варто
- Потрібні найновіші можливості Elastic Stack: деякі з них існують лише в Elasticsearch.
- Каталог невеликий, і достатньо легкого Meilisearch чи Typesense.
Ключові поняття
- Index / shard
- Індекс ділиться на шарди, які розподіляються по вузлах кластера.
- Query DSL
- JSON-мова запитів: match, bool, range та інші.
- OpenSearch Dashboards
- Вебінтерфейс для візуалізації та запитів, форк Kibana.
- k-NN / neural search
- Плагіни для пошуку за векторними embeddings, подібності за змістом.
Приклад
Питання на співбесіді
1. Навіщо створили OpenSearch?
Після зміни ліцензії Elasticsearch у 2021 році AWS та спільнота зробили форк версії 7.10 під Apache-2.0, щоб лишити повністю відкритий варіант.
2. Чи сумісний OpenSearch з клієнтами Elasticsearch?
Версії на основі 7.10 здебільшого сумісні. Новіші клієнти Elasticsearch можуть відмовлятися працювати з OpenSearch, тому краще брати офіційні клієнти OpenSearch.
3. Що змінилося у 2024 році?
OpenSearch передали OpenSearch Software Foundation під Linux Foundation, тобто управління стало нейтральним, а не під контролем AWS.
Порівняння з цією технологією
Схожі технології
- ElasticsearchElasticsearch це розподілений пошуковий і аналітичний рушій на базі Lucene з REST API і JSON-документами.
- MeilisearchMeilisearch це швидкий пошуковий рушій на Rust з миттєвим пошуком під час набору, толерантністю до помилок і простим налаштуванням.
- TypesenseTypesense це швидкий пошуковий рушій на C++ з толерантністю до помилок, фасетами та пошуком під час набору, що працює в памʼяті.
- ELK StackНабір Elasticsearch, Logstash і Kibana для збору, повнотекстового пошуку та візуалізації логів і подій.
Логотипи належать їхнім власникам і використані лише для ідентифікації. Іконки: Simple Icons (CC0), Devicon (MIT).