マジセミドライブ
ウェビナー関連のニュースやITサービス&ツールの最新情報を随時配信します。
OSS情報
2020.01.01
【OSS情報アーカイブ】Apache Solr

※当記事に記載されている情報は、古くなっている場合があります。オフィシャルサイトで最新情報をご確認ください。
コンテンツ
「Apache Solr」とは
概要
Apache Solr(アパッチソーラー)とは、オープンソースエンタープライズ検索プラットフォームです。ApacheLucene上に構築されており、「高速処理」「高信頼性」「拡張性」「分散インデックス作成機能」「負荷分散クエリ機能」「自動フェイルオーバー機能」などの特徴があります。
基本説明
Apache Solrは、RESTライクAPIを備えたスタンドアロンのエンタープライズ検索サーバです。
「JSON」「XML」「CSV」「HTTP経由バイナリ」を介してドキュメント類を管理します。HTTP GETを介してクエリを実行して結果を受け取れます。
世界最大級サイトをサポートできる検索機能およびナビゲーション機能を提供します。
オフィシャルサイト情報
■オフィシャルサイト
■主要開発元
Apache Solrは、Apache Software Foundationが中心となり開発が進められています。
■ライセンス情報
Apache Solrのライセンスは「ApacheLicense Version2.0」です。
詳細について、こちらを参照ください。
→apache.org →licenses →LICENSE-2.0
■ダウンロード
同様製品
同様な機能を提供する製品として、次のようなものがあります。
オープンソース製品:「ElasticSearch」など。
テキスト検索エンジン「ApacheLucene」ベース
Apache Solrは、オープンソースのテキスト検索エンジン「ApacheLucene」上に構築されており、Luceneの検索能力を活用して動作します。
あらゆるデータタイプにわたる強力なマッチング機能を実現します。
・フレーズ
・ワイルドカード
・結合
・グループ化 など
■ApacheLucenプロジェクト
ApacheLuceneは、完全にJavaで記述されたフル機能の高性能テキスト検索エンジンです。
全文検索機能を必要とするほぼすべてのアプリケーションに適したテクノロジーです。
■サブプロジェクト「Lucene Core」
「Lucene Core」はJavaライブラリです。
主な特徴
・スケーラブルで高性能なインデックス作成
・強力で正確かつ効率的な検索アルゴリズム
・クロスプラットフォームソリューション
主な機能
・インデックス作成機能
・検索機能
・スペルチェック機能
・ヒットハイライト機能
・高度分析機能
・トークン化機能 など
■サブプロジェクト「PyLucene」
PyLuceneサブプロジェクトは、LuceneCoreのPythonバインディングを提供します。
使いやすさ
■包括的管理インターフェース
Apache Solrには、Solrインスタンスを簡単に制御できる管理ユーザーインターフェースが付属しています。
ポイント
・リッチでパワフルなユーザーインターフェース
・「分析」「データ探索」などのための高度なインターフェースも
・組み込み型—追加インストールなしでSolrの状態を深く洞察
・クエリインターフェース—コード記述なしでデータを即座に探索
・「ログ」「スレッド」「システムプロパティ」を探索
■構成の簡素化
Apache Solrは、柔軟で適応性があり、簡単に構成できます。
構成を簡素化しながら、さまざまなニーズに適応するように設計されています。
■入力サポート機能
Solrには「オートコンプリート(先行入力検索)機能」や「スペルチェック機能」などの入力サポート機能が付属しています。
■ヒットハイライト機能
構成可能なヒットハイライト機能により、ユーザーは一致が発生する場所に正確に集中できます。
高速動作
■Near Real-Time Indexing機能
Solrは、Luceneの「Near Real-Time Indexing機能」を利用して、コンテンツを見たいときに確実に表示できるようにできます。
■キャッシュ機能
Solrは、構成可能かつ拡張可能な組み込みキャッシング機能を提供します。
・キャッシュのきめ細かい制御—パフォーマンス最適化が容易に
・スマートキャッシングオプション—繰り返し結果を厳密に制御可能
■マルチテナントアーキテクチャ
Solrはマルチテナントアーキテクチャをサポートしています。
複数の検索インデックスを作成できるため、ユーザーとコンテンツを簡単に分離できます。
スケーラブル
■ApacheZookeeperによる拡張性
Apache ZooKeeperは、信頼性の高い分散調整を可能にするオープンソースサーバを開発する取り組みです。
「構成情報維持機能」「命名機能」「分散同期機能」「フォールトトレランス機能」などにより、グループサービスを機能させるための集中型サービスを提供します。
ApacheZookeeper上に構築されたSolrを使用すると、簡単にスケールアップやスケールダウンを実施できます。
ポイント
・高度にスケーラブルでフォールトトレラントな環境を構築可能
・「スプリットブレイン問題」を回避
・シャード分割機能—コンテンツ全体のインデックス再作成なしで、段階的ストレージ容量追加
・「クエリ量が非常に多い数千の計算ノード管理」や「数十億のドキュメント処理」をサポート可能
機能拡張性
■カスタムコード
Apache Solrは、Apacheライセンスのオープンソースであり、明確に定義された多くの拡張ポイントを公開しているため、コードを変更して利用できます。
カスタムコードをロードして、Solr内のさまざまなタスクを実行できます。
・カスタムインデックス作成機能
・カスタム分析機能
・カスタムリクエスト処理機能
・カスタムクエリ解析機能
・テキストフィールドの「カスタムアナライザー」や「トークンフィルター」
・カスタムフィールドタイプ など
■プラグイン
Apache Solrでは、各種プラグインによる機能拡張をサポートしています。
・リッチコンテンツ用インデックス作成機能—PDFファイル、Wordファイル
・言語検出機能
・検索結果クラスタリング機能
・データインポート機能
・Apache UIMA—非構造化情報のマルチモーダル分析
・Apache Velocity—Javaコードで定義されたオブジェクト参照 など
→cwiki.apache.org →confluence →display →SOLR →SolrPlugins
セキュリティ
Apache Solrは、組み込みセキュリティ機能を備えています。
・SSLサポート
・認証機能
・ロールベース管理機能 など
プラグインによるセキュリティ強化も可能です。
監視機能
■メトリックデータ照会
SolrはJMX(Java Management Extensions)を介して大量のメトリックデータを公開しているため、インスタンスに関する深い洞察を実施できます。
■ロギング機能
管理インターフェースからSolrのログファイルに簡単にアクセスできます。
「Apache Solr」の検索機能
データ定義機能
Apache Solrでは、「スキーマ/スキーマレス」「フィールドタイプ」「分析プロセス」「ドキュメント構造」などを簡単に定義できるようになっています。
サポートされていない独自形式データ型も処理できるように拡張できます。
■データ駆動型スキーマ
スキーマレス型(データ駆動型スキーマ)を使用すると、簡単に開始できます。
構成済スキーマ型に切り替えると、堅固な本番環境として利用できます。
■動的フィールド
動的フィールドを使用すると、フィールド名に基づいてフィールドタイプに自動マップされる新しいフィールドをオンザフライで追加できます。
明示的タイプを使用すると、フィールドタイプ推測によるノイズを排除できます。
■Solrフィールドタイプ
Solrフィールドタイプを使用すると、コードを記述せずにLuceneアナライザーを宣言的に組み合わせることが簡単になります。
・charフィルター:トークン化の前にテキストを編集
・トークナイザー:テキストを用語に分割
・トークンフィルター:用語を変換
検索タイプ
■ファセット(フィルタリング)検索
「ファセット」とは「物事の側面や切り口」意味します。
「ファセット検索」とは『あらかじめWebサイト側が用意した検索条件をユーザーが選択することで、Webサイト内のコンテンツを絞り込めるナビゲーションの仕組み』を指します。
Apache Solrに用意されている多数のファセットアルゴリズムを使用した多様なデータスライスにより、データのグループ化と整理をサポートします。
・範囲ファセット—時間と数値コンテンツをわかりやすいバケットにグループ化
・複数選択ファセット—ファセットが元の結果セットとどのように相互作用するか?
・ピボットファセット—「もしも」の質問
■ロケーションベース検索
Solrの位置認識検索組み込みサポートにより、ロケーションベース検索を簡単に有効にできます。
「緯度」「経度」などの空間データ表現をサポートしているため、位置に基づくコンテンツの検索およびフィルタリングが可能です。
■多言語対応検索
Solrは、「英語」「日本語」「ドイツ語」「フランス語」などの、世界で広く話されている主要言語をサポートしています。
多言語コンテンツのインデックス作成とクエリが可能で、多くの分析ツールにより高度に構成可能なテキスト分析を実施できます。
■ドキュメント(リッチコンテンツ)検索
コンテンツ分析ツールキット「ApacheTika」は、「Wordファイル」「Excelファイル」「PowerPointファイル」「PDFファイル」などの、1000を超えるさまざまなファイルタイプからメタデータとテキストを検出して抽出します。
ApacheTikaは、これらのファイルタイプについて、すべて単一インターフェースを介して解析できるため、「検索エンジンのインデックス作成」「コンテンツ分析」「翻訳」などで効果的に利用できます。
SolrにはApacheTikaが組み込まれているため、コードを1行も記述せずに、リッチコンテンツタイプの抽出と処理が可能です。
高度な処理オプションにより、抽出されたリッチコンテンツにインデックスを付ける方法を簡単に制御できます。
■エンティティ識別検索
「Apache UIMA」は、大量の非構造化情報を分析するソフトウェアシステムです。
プレーンテキストを取り込んで、「言語識別」→「言語固有セグメンテーション」→「文の境界検出」→「エンティティ検出」のようにして、「人」「場所」「組織」などのエンティティを識別します。
SolrにはApache UIMAが統合されているため、エンティティ識別検索を活用できます。
参考元サイト
※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。
この記事のタグ一覧
フリーワード検索
カテゴリー一覧
アクセスランキング
おすすめの記事

デジタル寺田の3分用語解説
2025.03.11
【デジタル寺田の3分用語解説】 「 AIエージェント 」は、人間の管理職の代わりになるか?
「 AIエージェント 」は営業マネージャーの業務をどこまで代行できるのか?「データ分析」「フィードバック」「自動日程調整」の可能性を探り、未来の管理職のあり方を考察します。AIが進化する中で、人間の役割はどう変わるのか詳しく解説します。