キーワードトークナイザー

keyword トークナイザーは「noop」トークナイザーで、与えられたテキストをそのまま受け入れ、単一の用語として同じテキストを出力します。出力を正規化するためにトークンフィルターと組み合わせることができ、例えば、メールアドレスを小文字に変換することができます。

例の出力

Python

  1. resp = client.indices.analyze(
  2. tokenizer="keyword",
  3. text="New York",
  4. )
  5. print(resp)

Ruby

  1. response = client.indices.analyze(
  2. body: {
  3. tokenizer: 'keyword',
  4. text: 'New York'
  5. }
  6. )
  7. puts response

Js

  1. const response = await client.indices.analyze({
  2. tokenizer: "keyword",
  3. text: "New York",
  4. });
  5. console.log(response);

コンソール

  1. POST _analyze
  2. {
  3. "tokenizer": "keyword",
  4. "text": "New York"
  5. }

上記の文は次の用語を生成します:

テキスト

  1. [ New York ]

トークンフィルターとの組み合わせ

keyword トークナイザーをトークンフィルターと組み合わせて、製品IDやメールアドレスなどの構造化データを正規化できます。

例えば、次の analyze API リクエストは keyword トークナイザーと lowercase フィルターを使用して、メールアドレスを小文字に変換します。

Python

  1. resp = client.indices.analyze(
  2. tokenizer="keyword",
  3. filter=[
  4. "lowercase"
  5. ],
  6. text="[email protected]",
  7. )
  8. print(resp)

Ruby

  1. response = client.indices.analyze(
  2. body: {
  3. tokenizer: 'keyword',
  4. filter: [
  5. 'lowercase'
  6. ],
  7. text: '[email protected]'
  8. }
  9. )
  10. puts response

Js

  1. const response = await client.indices.analyze({
  2. tokenizer: "keyword",
  3. filter: ["lowercase"],
  4. text: "[email protected]",
  5. });
  6. console.log(response);

コンソール

  1. POST _analyze
  2. {
  3. "tokenizer": "keyword",
  4. "filter": [ "lowercase" ],
  5. "text": "[email protected]"
  6. }

リクエストは次のトークンを生成します:

テキスト

  1. [ john.smith@example.com ]

設定

keyword トークナイザーは次のパラメータを受け入れます:

buffer_size 単一のパスで用語バッファに読み込まれる文字数。
デフォルトは 256 です。用語バッファは、すべてのテキストが消費されるまでこのサイズで成長します。この設定を変更しないことをお勧めします。