Elasticsearch-analysis
Elasticsearch-分析
検索操作中にクエリが処理されると、インデックスのコンテンツが分析モジュールによって分析されます。 このモジュールは、アナライザー、トークナイザー、トークンフィルター、および文字フィルターで構成されています。 アナライザーが定義されていない場合、デフォルトでは、組み込みのアナライザー、トークン、フィルター、およびトークナイザーが分析モジュールに登録されます。
次の例では、他のアナライザーが指定されていない場合に使用される標準アナライザーを使用します。 文法に基づいて文を分析し、文で使用される単語を生成します。
上記のコードを実行すると、次のように応答が得られます-
標準アナライザーの構成
さまざまなパラメーターを使用して標準アナライザーを構成し、カスタム要件を取得できます。
次の例では、max_token_lengthが5になるように標準アナライザーを構成します。
このために、最初にmax_length_tokenパラメーターを持つアナライザーでインデックスを作成します。
次に、アナライザーに次のようなテキストを適用します。 トークンの先頭には2つのスペースがあり、末尾には2つのスペースがあるため、トークンは表示されないことに注意してください。 「is」という単語の場合、先頭にスペースがあり、末尾にスペースがあります。 それらすべてを取得すると、スペース付きの4文字になりますが、それは単語になりません。 カウント対象の単語にするために、少なくとも先頭または末尾にスペース以外の文字が必要です。
上記のコードを実行すると、次のように応答が得られます-
さまざまなアナライザーのリストとその説明は、以下に示す表に記載されています-
S.No | Analyzer & Description |
---|---|
1 |
Standard analyzer (standard) このアナライザーには、ストップワードとmax_token_length設定を設定できます。 デフォルトでは、ストップワードリストは空で、max_token_lengthは255です。 |
2 |
Simple analyzer (simple) このアナライザーは、小文字のトークナイザーで構成されています。 |
3 |
Whitespace analyzer (whitespace) このアナライザーは、空白トークナイザーで構成されています。 |
4 |
Stop analyzer (stop) stopwordsおよびstopwords_pathを構成できます。 デフォルトでは、ストップワードは英語のストップワードに初期化され、stopwords_pathにはストップワードを含むテキストファイルへのパスが含まれます。 |
トークナイザー
トークナイザーは、Elasticsearchのテキストからトークンを生成するために使用されます。 テキストは、空白またはその他の句読点を考慮してトークンに分割できます。 Elasticsearchには、カスタムアナライザーで使用できる組み込みのトークナイザーがたくさんあります。
文字ではない文字に出会うたびにテキストを用語に分割するトークナイザーの例は、すべての用語を小文字にします。
上記のコードを実行すると、次のように応答が得られます-
トークナイザーのリストとその説明は、以下の表に示されています-
S.No | Tokenizer & Description |
---|---|
1 |
Standard tokenizer (standard) これは、文法ベースのトークナイザーに基づいており、このトークナイザー用にmax_token_lengthを構成できます。 |
2 |
Edge NGram tokenizer (edgeNGram) min_gram、max_gram、token_charsなどの設定をこのトークナイザーに設定できます。 |
3 |
Keyword tokenizer (keyword) これにより、入力全体が出力として生成され、buffer_sizeを設定できます。 |
4 |
Letter tokenizer (letter) これは、文字以外が見つかるまで単語全体をキャプチャします。 |