Elasticsearch vs MyScale GenAIアプリケーションに適したデータベースの選択
AI主導のアプリケーションが進化する中、これらの進化をサポートするベクトル検索機能の重要性はいくら強調してもし過ぎることはない。このブログ記事では、ベクトル検索機能を持つ2つの著名なデータベースについて説明する:Elasticsearch と MyScale です。それぞれ、推薦エンジン、画像検索、セマンティック検索などのアプリケーションに不可欠なベクトル検索を扱うための堅牢な機能を提供しています。私たちのゴールは、開発者やエンジニアに明確な比較を提供し、どのデータベースが彼らの特定の要件に最も合致するかを決定する手助けをすることです。
ベクターデータベースとは?
Elasticsearch と MyScale を比較する前に、まずベクターデータベースの概念について説明します;
ベクトルデータベース](https://zilliz.com/learn/what-is-vector-database) は、特に高次元のベクトル を格納し、クエリするために設計されています。ベクトルは、非構造化データ の数値表現です。これらのベクトルは、テキストの意味、画像の視覚的特徴、または製品の属性などの複雑な情報をエンコードします。効率的な類似検索を可能にすることで、ベクトルデータベースはAIアプリケーションにおいて極めて重要な役割を果たし、より高度なデータ分析と検索を可能にしている。
ベクトルデータベースの一般的なユースケースには、電子商取引の商品推奨、コンテンツ発見プラットフォーム、サイバーセキュリティにおける異常検知、医療画像分析、自然言語処理(NLP)タスクなどがある。また、AI幻覚のような問題を軽減するために、外部知識を提供することによって大規模言語モデル(LLMs)の性能を強化する技術であるRAG(Retrieval Augmented Generation) において重要な役割を果たす。
市場には、以下のような多くの種類のベクトル・データベースがある:
- Milvus](https://zilliz.com/what-is-milvus)、Zilliz Cloud(フルマネージドMilvus)など。
- Faiss](https://zilliz.com/learn/faiss)やAnnoyのようなベクトル検索ライブラリ。
- Chroma](https://zilliz.com/blog/milvus-vs-chroma)やMilvus Liteのような軽量ベクトルデータベース。
- 小規模なベクトル検索が可能なベクトル検索アドオンを備えた従来のデータベース**。
ElasticsearchはApache Luceneをベースにした検索エンジンであり、MyScaleはClickHouseをベースに構築されたデータベースで、ベクトル検索とSQLアナリティクスを組み合わせたものである。どちらもアドオンとしてベクトル検索機能を持っている。この投稿では、両者のベクトル検索機能を比較する。 ;
Elasticsearch:概要とコアテクノロジー
Elasticsearch は Apache Lucene ライブラリ上に構築されたオープンソースの検索エンジンです。リアルタイムのインデックス作成と全文検索で知られているため、重いアプリケーションやログ分析に最適な検索エンジンです。Elasticsearchを使えば、大量のデータを高速かつ効率的に検索・分析することができます。
Elasticsearchは検索と分析のために構築され、ファジー検索、フレーズマッチ、関連性ランキングなどの機能を備えています。複雑な検索クエリやリアルタイムのデータ検索が必要なシナリオに最適です。AIアプリケーションの台頭により、Elasticsearchはベクトル検索機能を追加し、画像認識、文書検索、Generative AIなどのAIユースケースに必要な類似検索や意味検索ができるようになりました。
ベクター検索
ベクター検索は Apache Lucene を通して Elasticsearch に統合されている。Lucene は定期的にマージされる不変のセグメントにデータを整理し、ベクターは他のデータ構造と同じようにセグメントに追加されます。このプロセスでは、インデックスを作成する際にベクタをメモリ上にバッファリングし、 必要なときにバッファをセグメントの一部としてシリアライズします。セグメントを定期的にマージして最適化を行い、すべてのセグメントでヒットしたベクターを検索します。
Elasticsearch はベクトルのインデックス作成に HNSW (Hierarchical Navigable Small World) アルゴリズムを使用しており、類似したベクトル同士が接続されたグラフを作成します。HNSWはシンプルで、強力なベンチマーク性能を持ち、インデックスの完全な再学習を必要とせずにインクリメンタルな更新に対応できることから選ばれました。このシステムは、通常数十ミリ秒から数百ミリ秒でベクトル検索を実行し、総当たりアプローチよりもはるかに高速である。
Elasticsearch の技術的なアーキテクチャは最大の強みの一つである。このシステムは同時インデックス作成中であってもロックフリー検索をサポートし、ドキュメントの更新時には異なるフィールド間で厳格な一貫性を維持する。そのため、ベクトルフィールドとキーワードフィールドの両方を更新した場合、検索はすべての古い値かすべての新しい値のどちらかを見ることになり、データの一貫性が保証される。システムは利用可能なRAMを超えて拡張することができますが、ベクターデータがメモリに収まる場合にパフォーマンスが最適化されます。
コアとなるベクトル検索機能だけでなく、Elasticsearchは実用的な統合機能を提供しており、その価値は非常に高い。ベクトル検索は従来のElasticsearchのフィルタと組み合わせることができるので、ベクトルの類似性と全文検索結果をミックスしたハイブリッド検索を行うことができます。ベクトル検索は Elasticsearch のセキュリティ機能、アグリゲーション、インデックスソートと完全に互換性があるため、最新の検索ユースケースに対応する完全なソリューションです。
MyScale とは?概要とコアテクノロジー
MyScaleはオープンソースのClickHouseデータベース上に構築されたクラウドベースのデータベースで、AIや機械学習のワークロード向けに設計されている。構造化データ、ベクトルデータ、リアルタイム分析、機械学習を扱うことができる。MyScaleは時系列、ベクトル検索、全文検索に重点を置いているため、リアルタイム処理やAI主導の洞察に適している。ClickHouseアーキテクチャを使用することで、MyScaleはAI向けに高性能でスケーラブルです。
MyScaleの主な特徴の1つはネイティブSQLのサポートで、ベクトル検索、全文検索、従来のSQLクエリを1つのシステムに統合することで、AI主導のクエリを簡素化します。これにより、複数のツールの必要性を減らし、AI向けのスケーラビリティを実現している。MyScaleは、ベクトル化されたデータを操作するためのOLAPデータベース・アーキテクチャを使用して、1つのプラットフォーム上で構造化データとベクトル化データの両方の分析処理をサポートし、管理します。開発者はSQLを使用してMyScaleとやり取りできるため、リレーショナルデータベースに精通したすべてのプログラマーがアクセス可能です。
MyScaleには複数のベクトルインデックスタイプと類似度メトリクスがあり、様々なユースケースをサポートします。ユークリッド距離(L2)、内積(IP)、余弦類似度といった一般的な距離メトリクスをサポートしています。データベースには複数のインデックス作成アルゴリズムがあります:MSTG(マルチスケールツリーグラフ)、ScaNN、IVFFLAT、IVFPQ、IVFSQ、HNSWがあり、それぞれパラメータを調整することができます。MyScale独自のMSTGベクトルエンジンは、NVMe SSDを使用してデータ密度を高めているため、パフォーマンスとコストの両面で特殊なベクトルデータベースを凌駕します。
SQLデータベース、ベクトルデータベース、全文検索エンジンの機能を1つのシステムに統合することで、MyScaleはインフラとメンテナンスコストを削減します。この統合により、共同データクエリーと分析が可能になり、AIアプリケーションのための単一のデータ基盤が実現します。MyScaleはまた、LLMシステムの完全な観測性を実現するMyScale Telemetryを備えているため、効率的なモニタリングとデバッグが可能です。データがより複雑になるにつれ、MyScaleは、異なるデータタイプ間のコンピューティング・パフォーマンスと統合性を維持しながら、より新しいデータ様式とデータベース・サイズに対応できる、将来性のあるソリューションです。
主な違い
ベクトル検索ソリューションを選択する際、ElasticsearchとMyScaleの主な違いを知っておくと決断がしやすくなります。主な違いを見てみましょう:
アーキテクチャと基盤
Elasticsearch は Apache Lucene のライブラリの上に構築されており、検索と分析に特化しています。Elasticsearch はベクトルを不変のセグメントとして保存し、HNSW アルゴリズムを使ってベクトルインデックスを定期的にマージします。これにより、類似のベクトルが接続されたグラフが作成されるため、通常、検索はミリ秒以下となります。
MyScaleはClickHouseの上に構築された異なるアプローチを取る。AIや機械学習のワークロード用に設計されたOLAPアーキテクチャを使用している。MyScaleは、MSTG、ScaNN、IVFFLAT、IVFPQ、IVFSQ、HNSWを含む複数のインデックスオプションを提供しているため、ユースケースに適したアルゴリズムをより柔軟に選択できます。
検索とデータ管理
Elasticsearch はベクトル検索と従来の検索を組み合わせるのが得意です。ベクトルの類似検索とフルテキストクエリを混在させることができるので、ハイブリッドな検索シナリオに強い。システムは更新時の一貫性に厳しく、ベクトルフィールドとキーワードフィールドの両方を変更した場合、検索は全ての古い値か全ての新しい値のどちらかを見ることになる。
MyScaleはネイティブSQLをサポートしているため、ベクトル検索、全文検索、SQLクエリを1つのシステムで組み合わせることができます。MyScaleはOLAPアーキテクチャで構造化データとベクトルデータの両方を扱うことができる。
パフォーマンスとストレージ
Elasticsearch はベクトルデータがメモリに収まる場合に最高のパフォーマンスを発揮しますが、利用可能な RAM を超えて拡張することも可能です。ロックフリーの検索アーキテクチャにより、検索をブロックすることなく同時にインデックスを作成できます。
MyScaleはMSTGベクトルエンジンでユニークなアプローチを使っており、NVMe SSDを使ってデータ密度を高めている。ドキュメントによると、これにより専用のベクターデータベースよりも優れたパフォーマンスとコスト効率を実現している。
統合とモニタリング
Elasticsearch には優れた統合機能があり、セキュリティ機能、アグリゲーション、インデックスのソートとうまく連動します。そのため、最新の検索ユースケースのほとんどに適しています。
MyScale には LLM システムを監視する MyScale Telemetry があるので、アプリを追跡してデバッグすることができる。MyScaleは、SQLデータベース、ベクターデータベース、全文検索を1つのシステムに統合することで、インフラの複雑さを軽減することを目指している。
それぞれの使用時期
Elasticsearch は、全文検索とベクトル類似検索を組み合わせる必要があるハイブリッド検索シナリオに最適です。Apache Luceneの上に構築されたそのアーキテクチャは、パフォーマンスを維持しながら、リアルタイムのインデックス作成、厳密なデータ一貫性、同時検索を必要とするアプリケーションに最適です。すでにElasticのエコシステムに参加している方や、セマンティック検索とキーワード検索のバランスを取る必要がある検索アプリケーションを構築している方におすすめです。
MyScaleは、SQLベースのワークフローを持ち、より多くのベクトルインデクシングオプションを必要とする組織に適しています。ClickHouseとOLAPアーキテクチャにより、構造化データ分析とベクトル操作を組み合わせたAIや機械学習のワークロードに最適です。MSTGベクトルエンジンと内蔵のLLMシステム監視によってNVMe SSDを使用できるため、費用対効果の高いストレージと可観測性を必要とするAIアプリケーションの構築チームに最適です。
結論
最終的に Elasticsearch と MyScale のどちらを選択するかは、技術的な要件と既存のインフラ次第です。Elasticsearch は成熟したハイブリッド検索機能と実証済みのスケーラビリティ、厳格な一貫性保証を備えているので、検索を多用するアプリケーションに最適です。MyScaleはSQLネイティブのベクトル操作と複数のインデックスオプション、効率的なストレージ利用を備えているので、構造化データ分析を必要とするAIにフォーカスしたアプリケーションに適しています。あなたのチームの専門知識(SQLと検索に特化した知識)、既存のテクノロジー・スタック、ストレージ要件、ハイブリッド検索機能やAIワークロード最適化が必要かどうかに基づいて決定する必要がある。
ElasticsearchとMyScaleの概要についてはこちらをお読みいただきたいが、これらを評価するには、ユースケースに基づいて評価する必要がある。それに役立つツールの1つが、ベクターデータベースを比較するためのオープンソースのベンチマークツールであるVectorDBBenchだ。最終的には、独自のデータセットとクエリパターンを使って徹底的にベンチマークを行うことが、分散データベースシステムにおけるベクトル検索に対する、強力ではあるが異なるこの2つのアプローチのどちらを選ぶかを決める鍵となるだろう。
オープンソースのVectorDBBenchを使ってベクトルデータベースを評価・比較する
VectorDBBenchは、高性能なデータ保存・検索システム、特にベクトルデータベースを必要とするユーザーのためのオープンソースのベンチマークツールです。このツールにより、ユーザはMilvusやZilliz Cloud(マネージドMilvus)のような異なるベクトルデータベースシステムを独自のデータセットを使ってテストし比較し、自分のユースケースに合うものを見つけることができます。VectorDBBenchを使えば、ユーザーはマーケティング上の主張や伝聞ではなく、実際のベクターデータベースのパフォーマンスに基づいて決定を下すことができます。
VectorDBBenchはPythonで書かれており、MITオープンソースライセンスの下でライセンスされています。VectorDBBenchは、その機能と性能の改善に取り組む開発者のコミュニティによって活発にメンテナンスされています。
VectorDBBenchをGitHubリポジトリ**からダウンロードして、我々のベンチマーク結果を再現したり、あなた自身のデータセットでパフォーマンス結果を得てください。
VectorDBBench Leaderboard](https://zilliz.com/vector-database-benchmark-tool?database=ZillizCloud%2CMilvus%2CElasticCloud%2CPgVector%2CPinecone%2CQdrantCloud%2CWeaviateCloud&dataset=medium&filter=none%2Clow%2Chigh&tab=1)で、主流のベクトルデータベースのパフォーマンスを簡単に見てみましょう。
ベクターデータベースの評価については、以下のブログをお読みください。
- ベンチマーク・ベクター・データベースのパフォーマンス:テクニックと洞察](https://zilliz.com/learn/benchmark-vector-database-performance-techniques-and-insights)
- VectorDBBench: Open-Source Vector Database Benchmark Tool](https://zilliz.com/learn/open-source-vector-database-benchmarking-your-way)
- ベクターデータベースを他のデータベースと比較する](https://zilliz.com/comparison)
VectorDB、GenAI、MLに関するその他のリソース
- ジェネレーティブAIリソースハブ|Zilliz](https://zilliz.com/learn/generative-ai)
- あなたのGenAIアプリのためのトップパフォーマンスAIモデル|Zilliz](https://zilliz.com/ai-models)
- RAGとは](https://zilliz.com/learn/Retrieval-Augmented-Generation)
- 大規模言語モデル(LLM)を学ぶ](https://zilliz.com/learn/ChatGPT-Vector-Database-Prompt-as-code)
- ベクトルデータベース101](https://zilliz.com/learn/what-is-vector-database)
- 自然言語処理(NLP)](https://zilliz.com/learn/introduction-to-natural-language-processing-tokens-ngrams-bag-of-words-models)
読み続けて

How to Improve Retrieval Quality for Japanese Text with Sudachi, Milvus/Zilliz, and AWS Bedrock
Learn how Sudachi normalization and Milvus/Zilliz hybrid search improve Japanese RAG accuracy with BM25 + vector fusion, AWS Bedrock embeddings, and practical code examples.

Why Teams Are Migrating from Weaviate to Zilliz Cloud — and How to Do It Seamlessly
Explore how Milvus scales for large datasets and complex queries with advanced features, and discover how to migrate from Weaviate to Zilliz Cloud.

Vector Databases vs. Key-Value Databases
Use a vector database for AI-powered similarity search; use a key-value database for high-throughput, low-latency simple data lookups.
The Definitive Guide to Choosing a Vector Database
Overwhelmed by all the options? Learn key features to look for & how to evaluate with your own data. Choose with confidence.


