DUICUO

17 のアクティブなオープンソース検索エンジン プロジェクトから、知識コンテンツ関連のアプリケーション ソリューションのテクノロジを選択します。

検索エンジンは常にインターネットリソースの発見と探索に欠かせないツールでしたが、AGIの発展に伴い、検索エンジンは置き換えられると考える人もいます。この見解に対し、OpenAIの「Ultraman」はインタビューで、ChatGPTが検索に取って代わることはないが、将来的には人工知能システムが取って代わる可能性があると述べました。

インターネット情報検索以外にも、多くのソリューションは依然として検索エンジンに依存しています。これには、企業内ナレッジ検索やドキュメント検索が含まれます。知識検索技術は、LangChanのような大規模モデルに基づく一部のAIナレッジベースソリューションでも活用されています。

この記事では、主にさまざまな種類の検索エンジンとその独自の機能を紹介し、広く使用されているオープンソースの検索エンジン プロジェクトもいくつか推奨します。

検索エンジンのカテゴリ

1. ウェブ検索エンジン

ウェブ検索エンジンは最も一般的な検索エンジンです。インターネット上の情報を検索し、その結果をユーザーに表示します。人気のウェブ検索エンジンには、Google、Baidu、Bing、Yahoo!などがあります。ウェブ検索エンジンはインターネット上の膨大な情報をクロールし、高度なアルゴリズムを用いてコンテンツをインデックス化します。ユーザーはキーワードやフレーズを使って情報を検索し、数秒以内に関連性の高い結果を得ることができます。

2. メタ検索エンジン

メタ検索エンジンはウェブページを直接検索するのではなく、他の検索エンジンの検索結果を集約してユーザーに表示します。メタ検索エンジンは、単一の検索エンジンでは見逃してしまう可能性のある情報を見つけたり、複数の検索エンジンの検索結果を比較したりするために使用できます。メタ検索エンジンの例としては、DogpileやMetaCrawlerなどが挙げられます。

3. 全文検索エンジン

全文検索エンジンとは、文書内のキーワードやフレーズを検索する検索エンジンです。文書内のキーワードの存在のみを検索する従来の検索エンジンとは異なり、全文検索エンジンは文書のテキスト全体を検索します。全文検索エンジンは、大規模な文書や文書コレクション(ライブラリやデータベースなど)内から特定の情報を見つけるのに非常に便利です。例えば、ElasticsearchやApache Solrは全文検索に使用されるエンジンです。

4. ドキュメント検索エンジン

ドキュメント検索エンジンは、ドキュメント(PDF、Word文書など)の検索に特化して設計された検索エンジンです。ドキュメント検索エンジンは、大規模なファイルコレクション(ファイルサーバーやドキュメント管理システムなど)内から特定のドキュメントを見つけるのに非常に便利です。例としては、DocFetcherやSearchBloxなどが挙げられます。

検索エンジンには多くの種類があり、上記はほんの一例です。それぞれに独自の機能と性能があります。

人気のオープンソース検索エンジン

いくつかのオープンソース検索エンジンを研究することで、検索エンジン技術とその開発動向をより深く理解することができます。以下は、現在も比較的活発に活動している優れた検索エンジンプロジェクトです。

1. メイリサーチ

オープンソースアドレス: https://github.com/meilisearch/meilisearch

プログラミング言語: Rust

Meilisearchは、アプリケーション、ウェブサイト、ワークフローに簡単に統合できる超高速検索エンジンです。快適な検索エクスペリエンスを提供し、すぐに使える機能を提供します。

2. ウィービエイト

オープンソースアドレス: https://github.com/weaviate/weaviate

プログラミング言語: Go

Weaviateは、オブジェクトとベクトルを格納するオープンソースのベクトルデータベースで、ベクトル検索と構造化フィルタリングを組み合わせることができます。クラウドネイティブデータベースならではのフォールトトレランスとスケーラビリティを備え、GraphQL、REST、そしてJava、Go、Python、JavaScriptなど様々な言語で開発されたクライアントからアクセスできます。

Weaviate は、ChatGPT などの大規模な言語モデルとの統合に特に適しています。

3.ムンブル

オープンソースアドレス: https://github.com/mwmbl/mwmbl

プログラミング言語: Python

Mwmblは、使いやすさと速度に優れた、非営利、広告なし、無料の検索エンジンです。ただし、現時点ではコンセプト段階であり、小規模なインデックスにWebフロントエンドと検索技術を実装するための概念実証に過ぎません。

4. エラスティックサーチ

オープンソースアドレス: https://github.com/elastic/elasticsearch

プログラミング言語: Java

Elasticsearch(ES)は、強力で汎用性の高い検索エンジンです。ESは、高速かつ関連性の高い検索結果を提供するように設計されており、膨大なデータセットのリアルタイム検索に完全に最適化されています。主にベクター検索、全文検索、ログ、メトリクス、APM、セキュリティログに使用され、ユーザーに包括的でスケーラブルなソリューションを提供します。ESの機能は、特定のビジネスニーズに合わせて統合およびカスタマイズできます。

5. セックス

オープンソースアドレス: https://github.com/searx/searx

プログラミング言語: Python

Searxは、70以上の検索サービスから検索結果を集約する無料のインターネットメタ検索エンジンです。Searxはユーザーの行動を追跡したり分析したりすることはありません。匿名でのオンライン検索に適しています。

6. ミルバス

オープンソースアドレス: https://github.com/milvus-io/milvus

プログラミング言語: Go

Milvusは、組み込み類似検索およびAIアプリケーションを支えるクラウドネイティブなベクトルデータベースです。Milvusは特に非構造化データ検索に適しており、導入環境を問わず一貫したユーザーエクスペリエンスを提供します。コンテンツ中心の検索アプリケーションや大規模言語モデルAIアプリケーションの開発に最適なストレージソリューションの一つです。

7. タイプセンス

オープンソースアドレス: https://github.com/typesense/typesense

プログラミング言語: C++

Typesenseは、タイプミスを許容し、高速でユーザーフレンドリーな検索エクスペリエンスを提供するオープンソースの検索エンジンです。高度な検索アルゴリズムを採用し、ユーザーのプライバシーを最優先に考えます。Typesenseは、ファセットナビゲーション、地理検索、ベクター検索、セマンティック検索、類似検索などのアプリケーションの作成に適しています。

8. フレックスサーチ

オープンソースアドレス: https://github.com/nextapps-de/flexsearch

開発言語: JavaScript

FlexSearchは、高速性、柔軟性、そして依存性ゼロを特徴とする全文検索用のJavaScriptライブラリです。大量のデータ処理が可能で、様々なアプリケーションで簡単に使用できます。

9. Whoogle検索

オープンソースアドレス: https://github.com/benbusby/whoogle-search

プログラミング言語: Python

Whoogle Searchは、広告、トラッカー、AMPリンク、Co​​okie、IPアドレストラッキングのないメタ検索エンジンです。Dockerを使用してプライベートにデプロイできるほか、Arch Linux、Heroku、Fly.ioに手動でデプロイすることも可能です。

10. オープンサーチ

オープンソースアドレス: https://github.com/opensearch-project/OpenSearch

プログラミング言語: Java

OpenSearchは、オープンソースで分散型のRESTful検索エンジンです。ElasticsearchとKibanaのオープンソースフォークです。

11.クドラン

オープンソースアドレス: https://github.com/qdrant/qdrant

プログラミング言語: Rust

Qdrantは、AI向けの高性能で大規模なベクターデータベースです。ベクター類似度検索エンジンとベクターデータベースを備えています。すぐに使える便利なAPIが提供されており、ベクターの保存、検索、管理に利用できます。Qdrantはフィルタリング機能に特化して設計されているため、様々なニューラルネットワークやセマンティックベースのマッチング、ファセット検索などのアプリケーションに活用できます。

12. Vespa – ビッグデータ検索エンジン

オープンソースアドレス: https://github.com/vespa-engine/vespa

プログラミング言語: Java、C++、Go

Vespaは、ビッグデータを保存、検索、整理し、機械学習推論を実行できるオープンなビッグデータサービスエンジンです。ベクターデータ、テンソルデータ、テキストデータ、構造化データを、あらゆるサービス時間と規模で検索できます。

13. TNTサーチ

オープンソースアドレス: https://github.com/teamtnt/tntsearch

開発言語: PHP

TNTSearchはオープンソースの全文検索エンジンです。PHPで完全に開発されているため、移植性が高く使いやすく、PHPアプリケーションとの統合も可能です。

TNTSearchの重要な機能の一つは、検索結果をより正確かつ効果的にするステミングサポートです。英語、クロアチア語、アラビア語、イタリア語、ロシア語、ポルトガル語、ウクライナ語など、複数の言語でステミングをサポートしています。つまり、ユーザーは母国語でキーワードを検索し、正確な結果を得ることができます。

さらに、TNTSearchは、ユーザー固有のニーズを満たすための幅広い設定オプションを提供しています。これには、設定可能なデータベースタイプ、カスタムインデックス作成プロセス、さらにはカスタム検索アルゴリズムの実装機能などが含まれます。

14. ミニサーチ

オープンソースアドレス: https://github.com/lucaong/minisearch

開発言語: JavaScript、TypeScript

MiniSearchは、JavaScriptで書かれた小型のインメモリ型全文検索エンジンです。Node.jsまたはブラウザで実行できます。

15. タイニーサーチ

オープンソースアドレス: https://github.com/tinysearch/tinysearch

プログラミング言語: Rust

Tinysearchは軽量で高速な全文検索エンジンです。主に静的ウェブサイトからコンテンツを取得するために使用されます。TinysearchはRustで記述され、ブラウザで実行できるようにWebAssemblyにコンパイルされています。

16. モノクル

オープンソースアドレス: https://github.com/thesephist/monocle

開発言語: JavaScript

Monocleは、あらかじめ構築されたドキュメントインデックスに基づいて実行される、静的なシングルページWebアプリケーションです。インデックスシステムとWebアプリケーション自体はどちらもInkで記述されています。

以下は Monocle のアーキテクチャ図です。

17.ヤシー

オープンソースアドレス: https://github.com/yacy/yacy_search_server

プログラミング言語: Java

YaCyは、ユーザーがインターネット上で情報を検索できるピアツーピア(P2P)検索エンジンです。従来の検索エンジンとは異なり、YaCyはデータの保存とインデックス作成に中央サーバーに依存しません。代わりに、ノードの分散ネットワークを使用してデータをインデックス化し、ユーザー間で共有します。

検索エンジンの開発動向

人工知能(AI)の発展に伴い、ネットワークと知識の利用方法は変化しています。AIは検索エンジンに豊富な機能を提供し、私たちの検索方法を根本的に変革し始めています。こうした進歩の中でも、生成型AIとチャットボットは検索体験を変革し、高度にパーソナライズされた、会話的で直感的な検索方法を生み出しています。AI機能を活用することで、検索エンジンは関連性の高い信頼性の高い検索結果を生成すると同時に、個人の好みに基づいたカスタマイズされた提案を提供できるようになります。