トークナイザーのリファレンス
トークナイザーは、文字のストリームを受け取り、それを個々のトークン(通常は個々の単語)に分割し、トークンのストリームを出力します。たとえば、whitespace
トークナイザーは、空白を見つけるたびにテキストをトークンに分割します。これは、テキスト"Quick brown fox!"
を[Quick, brown, fox!]
という用語に変換します。
トークナイザーは、次の情報を記録する責任もあります:
- 各用語の順序または位置(フレーズおよび単語の近接クエリに使用)
- 用語が表す元の単語の開始および終了文字オフセット(検索スニペットのハイライトに使用)。
- トークンタイプ、
<ALPHANUM>
、<HANGUL>
、または<NUM>
のような生成された各用語の分類。より単純なアナライザーは、word
トークンタイプのみを生成します。
Elasticsearchには、カスタムアナライザーを構築するために使用できるいくつかの組み込みトークナイザーがあります。
単語指向のトークナイザー
以下のトークナイザーは、通常、フルテキストを個々の単語にトークン化するために使用されます:
- 標準トークナイザー
standard
トークナイザーは、Unicodeテキストセグメンテーションアルゴリズムで定義された単語の境界でテキストを用語に分割します。ほとんどの句読点記号を削除します。ほとんどの言語にとって最良の選択です。- 文字トークナイザー
letter
トークナイザーは、文字でない文字に出会うたびにテキストを用語に分割します。- 小文字トークナイザー
lowercase
トークナイザーは、letter
トークナイザーと同様に、文字でない文字に出会うたびにテキストを用語に分割しますが、すべての用語を小文字に変換します。- 空白トークナイザー
whitespace
トークナイザーは、空白文字に出会うたびにテキストを用語に分割します。- UAX URLメールトークナイザー
uax_url_email
トークナイザーは、standard
トークナイザーと似ていますが、URLとメールアドレスを単一のトークンとして認識します。- クラシックトークナイザー
classic
トークナイザーは、英語の文法に基づくトークナイザーです。- タイトークナイザー
thai
トークナイザーは、タイ語のテキストを単語に分割します。
部分単語トークナイザー
これらのトークナイザーは、部分単語の一致のためにテキストや単語を小さな断片に分割します:
- N-グラムトークナイザー
ngram
トークナイザーは、指定された文字のリスト(例:空白や句読点)のいずれかに出会うと、テキストを単語に分割し、各単語のn-グラムを返します:連続する文字のスライディングウィンドウ、例:quick
→[qu, ui, ic, ck]
。- エッジN-グラムトークナイザー
edge_ngram
トークナイザーは、指定された文字のリスト(例:空白や句読点)のいずれかに出会うと、テキストを単語に分割し、単語の開始に固定されたn-グラムを返します、例:quick
→[q, qu, qui, quic, quick]
。
構造化テキストトークナイザー
以下のトークナイザーは、フルテキストではなく、識別子、メールアドレス、郵便番号、パスなどの構造化テキストで通常使用されます:
- キーワードトークナイザー
keyword
トークナイザーは、「noop」トークナイザーで、与えられたテキストをそのまま受け入れ、単一の用語として正確に同じテキストを出力します。lowercase
のようなトークンフィルターと組み合わせて、分析された用語を正規化することができます。- パターントークナイザー
pattern
トークナイザーは、正規表現を使用して、単語区切りに一致するたびにテキストを用語に分割するか、一致するテキストを用語としてキャプチャします。- シンプルパターントークナイザー
simple_pattern
トークナイザーは、正規表現を使用して、一致するテキストを用語としてキャプチャします。制限されたサブセットの正規表現機能を使用し、pattern
トークナイザーよりも一般的に高速です。- 文字グループトークナイザー
char_group
トークナイザーは、分割する文字のセットを通じて構成可能で、通常は正規表現を実行するよりもコストが低くなります。- シンプルパターンスプリットトークナイザー
simple_pattern_split
トークナイザーは、simple_pattern
トークナイザーと同じ制限された正規表現サブセットを使用しますが、一致する部分で入力を分割し、一致を用語として返すのではありません。- パストークナイザー
path_hierarchy
トークナイザーは、ファイルシステムパスのような階層的な値を取り、パス区切りで分割し、ツリー内の各コンポーネントに対して用語を出力します、例:/foo/bar/baz
→[/foo, /foo/bar, /foo/bar/baz ]
。