Solrにおけるドキュメント解析

以下のセクションでは、Solrがテキストデータをどのように分解し、処理するかについて説明します。理解すべき主な概念は、アナライザー、トークナイザー、フィルターの3つです。

  • フィールドアナライザーは、ドキュメントがインデックスされるインジェスト時と、クエリ時の両方で使用されます。アナライザーは、フィールドのテキストを調べ、トークンストリームを生成します。アナライザーは、単一のクラスである場合もあれば、一連のトークナイザーおよびフィルタークラスで構成されている場合もあります。

  • トークナイザーは、フィールドデータを字句単位、つまりトークンに分割します。

  • フィルターは、トークンのストリームを調べ、保持、変換、破棄、または新しいトークンを作成します。トークナイザーとフィルターは、パイプラインまたはチェーンを形成するために組み合わされ、一方の出力が次の入力になります。このようなトークナイザーとフィルターのシーケンスはアナライザーと呼ばれ、アナライザーの結果の出力は、クエリ結果を照合したり、インデックスを構築したりするために使用されます。

アナライザー、トークナイザー、フィルターの使用

分析プロセスはインデックス作成とクエリの両方で使用されますが、両方の操作で同じ分析プロセスを使用する必要はありません。インデックス作成では、単語を単純化または正規化することがよくあります。たとえば、すべての文字を小文字に設定したり、句読点とアクセントを削除したり、単語を語幹にマッピングしたりするなどです。これにより、「ram」、「Ram」、「RAM」がすべて「ram」のクエリに一致するため、リコール率が向上します。クエリ時の精度を高めるために、フィルターを使用すると、たとえば、オスの羊に関心があり、ランダムアクセスメモリには関心がない場合、すべて大文字の頭字語を無視するなどして、一致を絞り込むことができます。

分析プロセスによって出力されるトークンは、そのフィールドの値または用語を定義し、新しいドキュメントが追加されたときにそれらの用語のインデックスを作成したり、クエリ対象の用語を含むドキュメントを特定したりするために使用されます。

詳細情報

これらのセクションでは、フィールドアナライザーを構成する方法と、利用可能な各トークナイザーおよびフィルタークラスを構成する詳細のリファレンスとして役立つ方法について説明します。また、含まれているフィルターまたはトークナイザーでは満たせない特別なニーズがある場合に、独自の分析クラスを構成できるようにするためのガイドとしても役立ちます。

アナライザー: Solrアナライザーの概要。

トークナイザー: トークナイザーとトークナイザーファクトリクラス。

フィルター: フィルターとフィルターファクトリクラス。

CharFilters: 入力文字を前処理するためのフィルター。

言語解析: 文字セット変換および特定の言語用のトークナイザーとフィルター。

解析画面: フィールド分析をテストするための管理UI。