全文検索エンジンとは?OSSのおすすめ比較3選
全文検索エンジンは、膨大なデータベース内のテキストを瞬時に横断検索し、欲しい情報を迅速に探し出すことができます。近年、ビジネスにおける意思決定の迅速化、顧客対応の向上、リアルタイムなデータ分析の必要性が高まっています。こうした状況の中、効果的な全文検索エンジンを選択することは組織にとって非常に重要です。
現在、多様な全文検索エンジンが存在する中で、特にオープンソースソフトウェア(OSS)は、コストメリットと高いカスタマイズ性が注目され、多くの企業が自社のニーズに合わせて利用しています。本記事では、OSSの全文検索エンジンを比較検討し、選定ポイントを詳しく解説します。
- +
目次
全文検索エンジンとは?
全文検索エンジンとは、文書やデータベース内のテキスト全体に含まれる全ての文字を検索対象とし、ユーザが入力したキーワードに基づいて情報を迅速に検索・取得するシステムのことです。通常の検索だと、巨大なデータセットから特定の情報を含む文書やデータを見つけたい場合に多大な時間がかかってしまいます。一方、全文検索エンジンを利用することで、欲しい情報を瞬時に見つけ出すことが可能になります。特にビジネスではリアルタイムでの情報取得が求められることが多く、全文検索エンジンを利用することで、企業内での迅速な情報共有と業務の効率化を支援することができます。
全文検索エンジンの主な機能
全文検索エンジンの主な機能として、次のような機能があります。
- インデックス作成
全文検索では、文書などの内容を解析して、あらかじめどこにどのような情報があるかという索引を作成しておく手法が一般的です。インデックス生成時の文字列の抽出方式には、形態素解析方式(分かち書き)、N-gram方式、この2つを組み合わせたハイブリッド方式などがあります。作成したインデックスを利用することで、全文検索エンジンは膨大な量のデータを効率的に検索することができます。
- クエリ処理
ユーザが入力した単語や設定条件などの検索要求を解析し、最も適切な文書を迅速に見つけ出します。
- ランキング
検索結果の関連性を評価し、最も情報価値の高い文書を上位に表します。
- 検索結果の表示
検索結果の一覧画面で、ユーザの検索要求に当てはまるファイルデータやパス、検索キーワードが該当する箇所などを表示します。
上記の機能によって、全文検索エンジンでは検索の高速性と正確性を実現しています。また、高度なフィルタリングやソート機能を備えているものもあり、特定の条件を満たすデータも効率よく抽出することが可能です。
OSSの全文検索エンジンを選ぶメリット
企業に導入する全文検索システムにおいて、OSSを利用することで以下のようなメリットがあります。
コストメリットが大きい
クラウドサービスの場合、対象となるデータ件数やサイズによって価格が変動する従量課金制のものが多く、データの量が増えていくとその分コストも上がってしまいます。一方、OSSはライセンス料が無料であるため、クラウドサービスと比べると導入後のランニングコストを気にせずに使い続けることができます。
情報をセキュアに管理できる
OSSを利用したシステムでは、一般的なクラウドサービスとは異なり、自社内のサーバに構築することができます。そのため、個人情報や機密情報を扱うような企業や組織において、検索対象となる文書を安全に管理したい場合は、OSSで自社専用のシステムを導入すると安心です。
自社システムと連携しやすい
OSSは、クラウドサービスや製品と違ってソースコードが公開されており、他のシステムと連携することが可能です。そのため、自社で利用している既存システムに合わせてカスタマイズや拡張を行い、全文検索の機能を組み込むことができます。
一方で、OSSの利用には注意すべき点もあります。例えば、開発元からの専門的な技術サポートが受けられなかったり、ソースコードが公開されているため、セキュリティ情報を常に確認し定期的な更新やパッチ適用が必要だったりします。こうした問題を内部リソースで対処することが難しい場合は、ベンダーに保守・運用を任せることをおすすめします。
OSSの全文検索エンジン選定ポイント
全文検索エンジンを選択する際には、事前に組織内で目的や要件を確認し、それに基づいて適切な選択を行う必要があります。以下では、OSSの全文検索エンジンを選ぶ際のポイントについて解説します。
検索したいデータの種類や量
データ形式(テキスト、画像、音声など)やデータ量は、全文検索エンジンを選択するうえで非常に重要です。特に、ビッグデータのようにデータ量が膨大となる場合は、それに対応できるスケーラビリティや処理速度を備えたエンジンが必要です。また、ファイルサーバやメールサーバ、データベース、インターネット上のドキュメントなど、検索対象によって最適なOSSも変わるため、自社で何を検索するかを決定した上でソフトウェアを選択することをおすすめします。
検索方法
単純なキーワード入力による検索だけでなく、自然言語処理(NLP)技術を組み込んだ検索インデックスがあれば、より複雑なクエリにも対応することができます。自然言語処理は、人間の言語を機械が処理し内容を抽出する技術であり、テキストの正規化や品詞分類などにも利用されます。このような複雑な検索技術が搭載されているものを選ぶことで、キーワード検索だけでは見つけにくい情報も探しやすくなり、欲しい情報へ素早くアクセスできるため非常に便利です。
継続的なサポートと開発元の動向
OSSでは多くの場合、開発元からの直接的なサポートは提供されず、コミュニティによる運営で機能追加やバグ修正が行われます。そのため、全文検索エンジンのOSSを選択する際は、活発な開発コミュニティが存在するかどうかを確認し、問題が発生した際に迅速にサポートを受けられるかどうかを検討することが重要です。また、開発元による突然のライセンス変更があると、これまで通りシステムを利用することが難しくなる可能性もあります。過去の動向を参考にして、長期的に利用可能なOSSを選ぶことも重要な選定ポイントです。
全文検索エンジンのOSS
以下では、OSSとして公開されている全文検索エンジンを紹介します。
Elasticsearch
Elasticsearchとは、オランダのElastic社が開発を行う全文検索エンジンです。Apache Luceneという検索エンジンを基盤として開発されており、2010年にオープンソースソフトウェアとしてリリースされました。
Elasticsearchの特徴
- ビッグデータ解析に対応している
- 部分一致検索や近似値の検索が可能
- 高速検索を実現
- クラスタ構成が可能
- スケーラビリティに優れている
- 高速なデータ登録
- 様々な検索クエリを実行できる
- ユーザにアクセス権限を付与できる
- RESTful APIを備えている
- 専用の可視化ツールがある
Elasticsearchは、検索速度や分析柔軟性に優れており、ユーザにとって分かりやすく検索できるのが特徴です。そのため、大規模なシステムで大量のデータの中から検索する場合などに適しています。また、情報量に合わせてスケーラブルにシステムを拡張することができるため、ビッグデータ解析やIoT解析などデータの規模が大きくなる分野でも利用されています。
なお、もともとElasticsearhの基本部分のライセンスはオープンソースで公開されていましたが、Elasticsearchを利用したAWS社のクラウドサービス「Amazon Elasticsearch Service」の提供を阻止するため、2021年2月リリースの7.11.0以降、ライセンスをSSPLとELv2へと移行しました。これにより、Elasticsearchは厳密にはオープンソースソフトウェアではなくなってしまいました。
しかし、2024年8月30日に、ELv2とSSPLの次にAGPLを別のライセンスオプションとして追加する予定であることを発表し、再度オープンソースソフトウェアへ戻ることを示唆しています。
OpenSearch
OpenSearchは、Elasticsearchをベースにして開発された全文検索エンジンです。前述の通りAWS社がElasticsearchを利用したサービスを提供できなくなってしまったことから、OpenSearchの開発が始まりました。Elasticsearchをフォークして作られているため、その特徴もElasticsearchと共通している部分が多くなっています。
OpenSearchの特徴
- ビッグデータ解析に対応している
- 部分一致検索が可能
- 高速検索を実現
- クラスタ構成が可能
- スケーラビリティに優れている
- 高速なデータ登録
- 様々な検索クエリを実行できる
- ユーザにアクセス権限を付与できる
- REST APIを備えている
- 専用の可視化ツールがある
上記のようにElasticsearchと似た特徴を持つOpenSearchですが、一部Elasticsearchと互換性のない部分もあります。そのため、OpenSearchへデータを投入したい場合は、投入するツールがOpenSearchに対応しているかを事前に確認しておく必要があります。
Apache Solr
Apache Solrとは、Apacheソフトウェア財団のプロジェクトが管理している、オープンソースの全文検索エンジンです。Apacheコミュニティによって開発が進められており、Apache Solrを利用したソフトウェア製品もいくつか開発されています。
Apache Solrの特徴
- ビッグデータ解析に対応している
- リアルタイムなインデックス作成が可能
- クラスタ構成が可能
- HTTPを使ったデータ登録・検索
- 管理者向けGUIがある
- プラグインによる機能拡張が可能
Apache Solrでは、ほぼリアルタイムなインデックス作成やデータ登録が可能です。また、ElasticsearchやOpenSearchと同じApache Luceneを基盤として利用しているため、大容量のデータベースにも対応することができます。こうした特徴を活かし、Apache Solrはメールサーバと連携した全文検索などに適しています。
また、Apache Solrはプラグインを利用することでインデックス作成やクエリの機能を拡張することが可能です。プラグインもオープンソースで公開されており、既存のシステムに全文検索の機能を組み込んだり、全文検索を利用したシステムを独自に開発したい場合は、Apache Solrを使うと非常に便利です。
なお、デージーネットでは、Apache Solrを利用して、後述するメールアーカイブシステムの「Messasy」や「AquaVault」を開発しています。
検索エンジンのOSS比較表
検索エンジンのOSSの機能・特徴を以下の表にまとめました。
比較項目 | Elasticsearch | OpenSearch | Apache Solr |
---|---|---|---|
開発元 | Elastic社 | AWS社 | Apache財団 |
初版リリース | 2010年 | 2021年 (Elasticsearchからのフォーク) |
2004年 |
ライセンス | SSPL/ELv2の デュアルライセンス (以前はApache 2.0) ※なお、2024年8月にAGPLを追加することを発表 |
Apache 2.0 | Apache 2.0 |
開発言語 | Java | Java | Java |
スケーリング | ○ | ○ | ○ |
API | 包括的なJSON API | 包括的なJSON API | REST API、 XML/JSON/CSV対応 |
全文検索機能 |
|
|
|
リアルタイムな インデックス化 |
○ | ○ | ◎ |
管理用インタフェース | ○ | ○ | ○ |
プラグイン | ○ | ○ | ○ |
データ可視化ツール | Kibana(別製品) | OpenSearch Dashboards(別製品) | 標準搭載の管理画面 |
エンタープライズ検索 | ○ | ○ | ◎ |
OSSの全文検索エンジンの選び方
以下では、今回紹介した各OSSのおすすめの利用ケースをそれぞれまとめました。以下の例のような要望がある場合は、記載のソフトウェアをおすすめします。
Elasticsearch/OpenSearchがおすすめ
- 大容量のデータから検索したい
- 今後もデータ量が増える可能性がある
- 複雑なクエリで検索したい
Apache Solrがおすすめ
- リアルタイムに更新されるデータを検索したい
- 既存のシステムに全文検索を組み込みたい
- 全文検索の機能を使ったシステムを独自に開発したい
全文検索システムのOSS
以下では、上記で紹介した全文検索エンジンを利用し、OSSとして公開されている全文検索システムを紹介します。
Fess
Fessは、CodeLibsというプロジェクトによって開発されたオープンソースの全文検索システムです。FessはデータベースにElasticsearchやOpenSearchを利用し、Webブラウザ上の画面から、ファイルサーバやWebサイト内のデータを全文検索で探すことができます。
Fessの特徴
- 日本語に対応した全文検索ができる
- Webインターフェースから検索・設定・管理ができる
- 自動クローリングでデータ収集ができる
- 多様なファイル形式を検索対象にしている
- 様々な検索クエリを実行できる
- ユーザのアクセス権限を設定できる
- OCR機能を追加すれば画像の中の文字も検索できる
Fessでは全文検索エンジンにElasticsearch/OpenSearchを採用しているため、大量のデータでも高速な全文検索を実現しています。またFessは、テキスト文書やExcel、Word等のOffice形式、PDFや圧縮ファイル(zip,tar,gz)など、さまざまなファイル形式に対応しています。組織内のファイルサーバに保管された文書を簡単に見つけ出すことができたり、企業のホームページでサイト内検索として利用したりすることができます。
なお、LDAPやActiveDirectoryなどの認証サーバと連携することで、ファイルサーバ内のアクセス権を適用して、閲覧権限を持つユーザーのみに対象の検索結果を表示することができます。そのため、セキュリティも安心して全文検索を利用することができます。
Graylog
Graylogは、ログサーバの管理やログの参照、検査、可視化などをGUIから行える、オープンソースの統合ログ管理ソフトウェアです。ElasticsearchやOpenSearchをベースに作られており、ログ管理の一環として高速なログの全文検索を行うことができます。
Graylogの特徴
- ビッグデータ解析に対応している
- リアルタイムなインデックス作成
- Webインターフェースから検索・設定・管理ができる
- テキストだけでなく数値情報も検索できる
- 解析したデータをグラフ等で可視化することができる
- ダッシュボードを作成できる
- ユーザのアクセス権限を設定できる
- プラグインによる機能拡張が可能
Graylogでは、全文検索エンジンとしてElasticsearchやOpenSearchを利用しているため、大量のログを高速に検索することができます。また、クローラで情報を自ら取得しに行くFessとは違い、Graylogでは周囲から送られてくる情報をその都度インデックス化します。そのため、各種デバイスやソフトウェアから出力されるログの検索に適していて、中でもセキュリティログの管理に使用されるケースが多いです。さらに、ログ以外の情報も収集・蓄積したり、グラフ化して監視したりすることが可能なため、IoTの分野でも活用されています。
SyLAS
SyLASは、デージーネットが開発したオープンソースのログ管理システムです。rsyslogというOSSのsyslogサーバと連携してログ監視を実現しており、ログ監視の一環としてWebブラウザからログの検索を行うことができます。もともとはログの保管データベースとしてMySQLの全文検索機能を使っていましたが、現在はElasticsearchにも対応しています。
SyLASの特徴
- Webインターフェースから検索・設定・管理ができる
- 複数ログを一括検索できる
- ネットワーク機器のログも検索できる
- ログの出力をメールで通知できる
- 開発元のサポートを受けられる
ログ管理の機能はGraylogと比べて極めてシンプルですが、この程度の機能で十分な場合も多いため、多機能なツールを求めていない利用者にとっては使いやすくなっています。また、ネットワーク機器がsyslogサーバへログを転送する機能を備えている場合、ネットワーク機器のログもWebから参照・検索することができます。
なお、SyLASはデージーネットで開発を行ったソフトウェアであり、「SyLAS商用サポート」を提供しています。このサポートでは、SyLASの使用方法に関するQ&Aや不具合の調査などをサポートしています。さらに、SyLASのインストール方法や使い方について、マニュアルとしてホームページ上で公開しています。
OpenObserve
OpenObserveとは、ログの全文検索エンジンとフロントエンドUIを兼ね備えたログ管理ソフトウェアです。Zinc labsによって提供されています。OpenObserveはElasticsearchと互換性があり、既存のElasticsearchツールからクエリを引き継いで使用することが可能です。
OpenObserveの特徴
- 高いデータ圧縮率
- 素早くログを検索できる
- メモリとディスクを使い分けた高い柔軟性
OpenObserveは、ログを受信・保存することを目的としたシステムに適しています。例えば、大量のログを長期間保管する必要がある場合、ログのストレージサイズによっては多大なコストがかかります。また、同じログ管理ソフトウェアであるGraylogの場合、1CPUコアあたりの受信性能が限られているためCPUコストもかかります。一方、OpenObserveは高い圧縮率でデータを保管するため、コストを抑えながら利用することが可能です。
Messasy
Messasy(メザシ)は、デージーネットが開発した、アーカイブされたメールを検索・表示するオープンソースソフトウェアです。全文検索エンジンのApache Solrと連携することができます。管理者は、通常のメールソフトを閲覧するのと同じように、保存された過去のメールを全文検索で参照することができます。
Messasyの特徴
- メールを圧縮・暗号化して保存できる
- Webインタフェースから保存したメールの閲覧・検索が可能
- 保存するメールの条件を設定できる
- 日付や送信者のメールアドレスで保存先のフォルダを整理できる
Messasyは全文検索エンジンにApache Solrを利用しているため、大量のアーカイブメールから短時間で必要なメールを検索することができます。送受信された全てのメールを自動的に保管しているため、誤ってメールを削除してしまった場合もメールを閲覧することができます。また、メールの情報漏えいやデータの改ざんを確認する目的で、監査利用としても役立ちます。
さらにデージーネットでは、Messasyの機能を拡張したメールアーカイブシステム「AquaVault」を開発し、サービスとして提供しています。Messasyでは管理者しかメールを閲覧できませんでしたが、それに加えて、ユーザ自身が全文検索で必要なメールを検索・復元できる機能が追加されています。
デージーネットの取り組み
デージーネットでは、全文検索の仕組みを使ったシステムの構築サービスを行っており、実際に多数にお客様に導入した実績がございます。お客様のご要望や利用環境、システムの規模を考慮して、最適なソフトウェアとシステム構成をご提案いたします。構築時は、専門家の観点から詳細な試験を行い、大量のデータでもきちんと動作することを確認いたします。
なお、デージーネットでシステムを構築いただいた場合、導入後の支援としてOpen Smart Assistanceと呼ばれる保守サポートもご提供しております。このサービスでは、利用方法などに関するQ&A対応、セキュリティの情報提供、障害調査など、管理者のシステム運用の業務をサポートしています。そのため、導入後も安心してシステムをご利用いただけます。
全文検索システムの構築事例一覧
Elasticsearchを使ったログ解析システム構築事例
CATVのインターネットサービスでは、障害の対応や犯罪捜査への協力のために、IPアドレスから利用者を特定しなければならない場合があります。従来は、DHCPサーバ、WWWサーバ、メールサーバ、課金システムなどの膨大なログをgrepコマンドを使って調査し、利用者を特定していました。そのため、調査は大変時間がかかる作業でした。この調査を効率化できないかと相談を受け対応しました。
Elasticsearchの性能改善事例
システムを作っても、思ったより検索に時間がかることがあります。そのような場合には、利用するメモリ量に合わせてチューニングする必要があります。デージーネットの改善支援コンサルティングサービスでは、こうしたチューニングの作業を行っています。
全文検索の仕組みを導入したメールアーカイブシステム構築事例
今回は、教育関係のお客様へメールアーカイブシステムを構築した事例です。お客様は、以前デージーネットで構築したメールサーバのリプレースを検討しており、メールでの情報漏洩の防止を行いたいというご要望から、特定のユーザに送付されたメールをすべて転送するメールアーカイブシステムを導入しました。
Apache Solrによるメール全文検索システム構築事例
デージーネットが以前に構築したインターネットサービスプロバイダのメールシステムについて、メールの検索が遅く、検索をするとシステムの負荷も高くなる状態を改善できないかと相談を受け対応した事例です。
Fessによるファイルサーバ検索システム構築事例
社員の情報共有のために、ファイルサーバに保管されている情報を効率よく検索するシステムを導入したいという要望があり、Fessを提案しました。ビッグデータの技術を利用して高速検索ができるようになり、ファイルを探す手間が省けるようになりました。
Fessによるサイト内検索システム構築事例
ホームページにサイト内検索の機能を持たせたいということで、相談を受けました。デージーネットからは、Fessを使った検索システムを提案しました。
全文検索サーバFessの導入事例
ファイルサーバの検索性能向上を検討されていたお客様に、高速に全文検索を行うことができるOSSの全文検索システム「Fess」を導入した事例についての記事です。また、ファイルサーバの権限から検索対象の制限を設定したいという使い方のご希望に合わせ、システムを構築しました。
Graylogによるセキュリティログ管理サーバ構築事例
ISPを運営しているお客様から、セキュリティログの検索やログの管理を効率よくできないかという相談がありました。外部からの問い合わせで、IPアドレスから顧客を特定したい場合や、サーバに攻撃があった場合に、迅速に対応できるようにするためです。そこでデージーネットからは、Graylogを提案しました。
Graylogを利用したログ管理サーバの構築事例
通信事業者様にログ管理サーバを構築し導入した事例です。お客様からは、ログの管理が煩雑な部分や、ネットワーク機器の障害に素早く対応したいなどの課題を相談されました。
GraylogとLogstashによるログ収集システム構築事例
通信事業者様にログ収集及び検索システムを導入した事例です。お客様は、既存のログ収集システムの更改を検討されていました。
GraylogによるLinux/Windowsに対応したログ収集・検索システム構築事例
医療関係のお客様に統合ログ管理システムを導入した事例です。お客様は、Linux、WindowsそれぞれのOSの仮想マシンを運用しており、それぞれのログをまとめて収集できるシステムを検討していました。
Messasyを利用したメールアーカイブシステム構築事例
この記事では、Messasyを利用したメールアーカイブシステムの構築事例を紹介しています。過去のメールを確認するため、社内で送受信したメールをすべて保存しておきたいというお客様のご要望に対し、デージーネットからはMessasyの導入をご提案しました。