MENU

Manticore Search — Sphinxを発展させた現代版OSS検索

Manticore Search アイキャッチ
Manticore Search

Manticore Searchは2017年にSphinx Search 2.3.2系からフォークしたC++製のオープンソース検索エンジンで、Sphinxコアコントリビュータが中心となって設立した英国法人Manticore Software Ltd.が開発を続けています。Sphinxのプロプライエタリ化への懸念から派生したプロジェクトでありながら、リアルタイムインデックス、JSON API、複製レプリケーション、ベクトル検索といった現代的な機能を意欲的に取り入れ、独自の進化を遂げてきました。GPLv3ライセンスで配布され、SphinxQLに加えてHTTP/JSON API、MySQLプロトコル経由のSELECT文、Percona ProxySQL経由のフェイルオーバーまでサポートする幅広いインターフェースを提供します。中規模ECサイトやログ分析、ニュース検索など、軽量さと機能の網羅性が両立するエンジンを求める現場で採用が広がっています。

目次

この記事の目次

  1. Sphinxからの分岐と独立開発
  2. Sphinx互換と現代化された機能群
  3. ユースケースと運用上の特徴
  4. 競合との比較と選び方
  5. まとめ

Sphinxからの分岐と独立開発

Sphinxからの分岐と独立開発

Manticoreは2017年、Sphinx Searchがクローズドソース化の方向へ舵を切ったことを受け、コアコントリビュータのAdrian Nuta、Sergey Nikolaev、Stanislav Kleninらが立ち上げました。Sphinx 2.3.2系をフォーク元として、GPLv3ライセンスで再スタートし、その後はSphinxとは独立した方針で機能拡張と性能改善を進めています。イギリスにManticore Software Ltd.を法人化し、商用サポートとマネージドサービスを提供しながらOSS開発を継続するモデルを取っています。

2019年公開のManticore Search v3.0ではSphinx由来のレガシー機能の整理とパフォーマンス改善が大きく進み、2021年以降のv4.x系ではHTTP/JSON APIが本格的に整備されました。v6.x系(2023年〜)ではベクトル検索のサポートが追加され、HNSWによるANN検索とBM25のキーワード検索を組み合わせたハイブリッド検索が可能になりました。「軽量さと俊敏な機能追加」を旗印に、Sphinx時代から続くコアの強みを保ちながら現代的なAPIとMLサポートを取り込む方針が貫かれています。

Sphinx互換と現代化された機能群

Sphinx互換と現代化された機能群

Manticoreの強みのひとつはSphinxとの高い互換性で、既存のSphinx 2.x系設定ファイルとアプリケーションコードを最小限の変更で移行できるよう設計されています。MySQLプロトコル互換のSphinxQLポート(既定9306番)に加え、独自のバイナリプロトコルポート(9312番)、JSON APIポート(9308番)の三系統を同時に提供しており、用途とクライアントに応じて使い分けが可能です。PHP、Python、Java、Go、Ruby、JavaScript向けの公式クライアントライブラリも整備され、現代的なREST API感覚で扱えるよう改善されています。

クラスタリングはGalera Clusterに似た同期レプリケーション方式を採用しており、マルチマスタ構成で書き込みを任意のノードに送れます。Sphinx時代にはなかった機能として、Real-Time Index(RT Index)の安定性向上、Percolate Indexによるストリーミング検索(クエリ側を保存しドキュメント到着時に逆マッチ)、AutoIDの追加、分散インデックスの自動シャーディングなどが盛り込まれてきました。BuddyというPHPで書かれたサイドカープロセスがクエリ前処理や拡張機能を担当し、Manticoreコア本体は軽量性を保ったまま拡張機能を提供できるアーキテクチャを取り入れています。

ユースケースと運用上の特徴

ユースケースと運用上の特徴

Manticoreが特に好まれる現場は、ElasticsearchやOpenSearchのJVM負荷が重すぎるが、SQLiteレベルの軽量検索では物足りないという中規模ユースケースです。C++実装のためメモリフットプリントが小さく、シングルノードで数千万件規模の検索を扱えるパフォーマンス特性を持ちます。ECサイトの商品検索、ニュース・ブログの記事横断検索、ログ集約(Manticore自身がLogstash互換のFluentd経由でログを受け取る構成もサポート)など、多様な現場で採用されています。

もうひとつ強みになるのが、Sphinx 2.x系からの移行パスとしての位置付けです。既にSphinxを採用しているレガシーシステムをモダン化したい場合、Manticoreへの移行は設定ファイル変換と最小限のクライアント側調整で完了することが多く、ElasticsearchやOpenSearchへの全面移行に比べて移行コストが大幅に低くなります。v6.x以降のベクトル検索サポートにより、既存の全文検索資産を保ちつつRAG的なセマンティック検索を追加する選択肢にもなり、Sphinx時代のユーザーにとって自然な発展形として機能しています。

競合との比較と選び方

競合との比較と選び方

Manticoreの競合はElasticsearch、OpenSearch、Meilisearch、Typesense、Solrなど多岐にわたります。JVM系のElastic/OpenSearchと比べると、Manticoreはメモリ消費とCPU負荷が軽く、観測性や運用ツールチェインの厚みでは劣るものの、シンプルな全文検索ニーズには十分以上の機能を備えています。MeilisearchやTypesenseと比べると、Sphinx由来の枯れた検索エンジンコアと商用サポート体制の長さが信頼性の面で評価され、企業内システムでは選ばれやすい傾向があります。

選択判断の基準としては、既にSphinxを採用しているなら迷わずManticore、新規システムでJVMを避けたいかつ軽量な全文検索が必要ならManticoreかMeilisearch/Typesense、観測性や大規模ログ分析が主目的ならElastic/OpenSearchが順当な選び方になります。Manticore Cloudというマネージドサービスも提供されており、自前運用のハードルを下げたい場合にも採用可能です。「Sphinxの正当な後継」というポジションを意識しつつ、現代的な機能を着実に追加していく姿勢が、地味ながら強い支持を集める理由になっています。

まとめ

Manticore SearchはSphinxの遺産を引き継ぎつつ、現代的なJSON APIやベクトル検索、同期レプリケーションを取り込んだC++製のOSS検索エンジンです。軽量さと機能の網羅性、Sphinxからの移行容易性という独自の強みを持ち、JVM系の選択肢とは異なる立ち位置で中規模システムや既存Sphinxユーザーから着実な支持を集めています。

※本記事はIT用語辞典の手書きドラフトです。公開前に最新情報・出典を確認のうえ加筆修正してください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次