AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

Tokenizers for Custom Search Analyzers

カスタムアナライザのトークナイザは、 MongoDB Search がインデックスを作成するためにテキストを個別のチャンクに分割する方法を決定します。トークナイザにはタイプフィールドが必要で、一部のトークナイザは追加のオプションも受け取ります。

構文
"tokenizer": {
"type": "<tokenizer-type>",
"<additional-option>": "<value>"
}

The sample index definitions and queries on this page use the sample collection named minutes. To try these examples, load the minutes collection on your cluster and navigate to the Create a Search Index page in the Atlas UI following the steps in the Create a MongoDB Search Index tutorial. Then, select the minutes collection as your data source, and follow the example procedure to create an index from the Atlas UI or using mongosh.

edgeGramトークナイザは、テキスト入力の左側、つまり「エッジ」からの入力を指定されたサイズの n グラムにトークン化します。 シノニムanalyzer または オートコンプリート フィールド マッピング定義 の フィールドでは、 edgeGram トークナイザ とカスタムアナライザを使用することはできません。

The edgeGram tokenizer has the following attributes:

注意

edgeGramトークナイザは、1 単語ごとおよび入力テキスト内の単語全体に複数の出力トークンを生成し、トークン グラフを生成します。

オートコンプリート フィールド型マッピング定義と シノニム マッピングを持つアナライザは、グラフを生成しないトークナイザで使用された場合にのみ機能するため、analyzer オートコンプリート フィールド型マッピング定義または シノニム を持つアナライザには、 フィールドで EdgeGram トークナイザ を含むカスタムアナライザを使用することはできませんマッピング。

名前
タイプ
必須
説明

type

string

はい

このトークナイザのタイプを識別する、人間が判読できるラベル。 値はedgeGramである必要があります。

minGram

integer

はい

作成された最短のトークンに含める文字数。

maxGram

integer

はい

作成された最長トークンに含める文字数。

次のインデックス定義は、 edgegramExampleという名前のカスタムアナライザを使用して、 minutesコレクションのmessageフィールドをインデックス化します。 edgeGramトークナイザを使用して、2 7フィールドの単語の左側の最初の文字から始まる 文字と 文字の長さのトークン(検索可能なターム)を作成します。message

次のクエリは、 minutesコレクションのmessageフィールドでtrで始まるテキストを検索します。

MongoDB Search は、検索タームに一致MongoDBドキュメントの edgeGramトークナイザを使用して、値 tr のトークンを作成したため、結果に _id: 1_id: 3 を含むドキュメントを返します。standardトークナイザを使用して messageフィールドをインデックスと、 MongoDB Search は検索タームtr の結果を返しません。

次の表は、 edgeGramトークナイザと比較してstandardトークナイザが結果内のドキュメントに対して作成するトークンを示しています。

トークナイザ
Token Outputs

standard

try, to, sign, in

edgeGram

tr, try, try{SPACE}, try t, try to, try to{SPACE}

keywordトークナイザは入力全体を単一のトークンとしてトークン化します。MongoDB Search は、keywordトークナイザを使用して、32766 文字を超える string フィールドのインデックスしません。

The keyword tokenizer has the following attributes:

名前
タイプ
必須
説明

type

string

はい

このトークナイザのタイプを識別する、人間が判読できるラベル。 値はkeywordである必要があります。

次のインデックス定義は、 keywordExampleという名前のカスタムアナライザを使用して、 minutesコレクションのmessageフィールドをインデックス化します。 keywordトークナイザを使用して、フィールド全体にトークン(検索可能なターム)を 1 つのタームとして作成します。

次のクエリは、 minutesコレクションのmessageフィールドでフレーズtry to sign-inを検索します。

MongoDB Search は、検索タームに一致MongoDBドキュメントの keywordトークナイザを使用して、値 try to sign-in のトークンを作成したため、結果に _id: 3 を含むドキュメントを返します。standardトークナイザを使用して messageフィールドをインデックスと、 MongoDB Search は検索タームtry to sign-in に対して _id: 1_id: 2_id: 3 を含むドキュメントを返します。これは、各ドキュメントにいくつかのトークンが含まれているためです。standardトークナイザはを作成します。

次の表は、 keywordトークナイザと比較してstandardトークナイザが_id: 3を含むドキュメントに対して作成するトークンを示しています。

トークナイザ
Token Outputs

standard

try, to, sign, in

keyword

try to sign-in

nGramトークナイザは、指定されたサイズのテキストチャンク、つまり「n グラム」にトークン化します。 シノニム (同意語) または オートコンプリート フィールドのマッピング定義 では、 フィールドで nGram トークナイザ とカスタムアナライザを使用することはできません。analyzer

The nGram tokenizer has the following attributes:

名前
タイプ
必須
説明

type

string

はい

このトークナイザのタイプを識別する、人間が判読できるラベル。 値はnGramである必要があります。

minGram

integer

はい

作成された最短のトークンに含める文字数。

maxGram

integer

はい

作成された最長トークンに含める文字数。

次のインデックス定義は、 ngramExampleという名前のカスタムアナライザを使用して、 minutesコレクションのtitleフィールドをインデックス化します。 nGramトークナイザを使用して、 titleフィールドに4から6文字の長さのトークン(検索可能なターム)を作成します。

次のクエリは、 minutesコレクションのtitleフィールドでweekというタームを検索します。

MongoDB Search は、検索タームに一致MongoDBドキュメントの nGramトークナイザを使用して、値 week のトークンを作成したため、結果に _id: 1 を含むドキュメントを返します。standardまたは edgeGramトークナイザを使用して titleフィールドをインデックスと、 MongoDB Search は検索タームweek の結果を返しません。

次の表は、 nGramトークナイザと比較して、 standardedgeGramトークナイザが_id: 1を含むドキュメントに対して作成するトークンを示しています。

トークナイザ
Token Outputs

standard

The, team's, weekly, meeting

edgeGram

The{SPACE}, The t, The te

nGram

The{SPACE}, The t, The te, he t, ... , week, weekl, weekly, eekl, ..., eetin, eeting, etin, eting, ting

regexCaptureGroup トークナイザは、Java の正規表現パターンを使用してトークンを抽出します。

Tip

To learn more about Java regular expression syntax, see the Pattern class in the Java documentation.

The regexCaptureGroup tokenizer has the following attributes:

名前
タイプ
必須
説明

type

string

はい

このトークナイザのタイプを識別する、人間が判読できるラベル。 値はregexCaptureGroupである必要があります。

pattern

string

はい

照合する正規表現。

group

integer

はい

トークンに抽出する一致する式内の文字グループのインデックス。 すべての文字グループを抽出するには、 0を使用します。

次のインデックス定義は、 phoneNumberExtractorという名前のカスタムアナライザを使用して、 minutesコレクションのpage_updated_by.phoneフィールドをインデックス化します。 このクエリでは、次の を使用します。

  • mappings 文字フィルター : 最初の 3 桁の括弧を除き、すべてのスペースとピリオドをダッシュに置き換えます。

  • regexCaptureGroup テキスト入力に存在する最初の米国形式の電話番号から単一のトークンを作成するためのトークナイザ

次のクエリは、 minutesコレクションのpage_updated_by.phoneフィールドで電話番号123-456-9870を検索します。

MongoDB Search は、検索タームに一致MongoDBドキュメントの regexCaptureGroupトークナイザを使用して、値 123-456-7890 のトークンを作成したため、結果に _id: 3 を含むドキュメントを返します。standardトークナイザを使用して page_updated_by.phoneフィールドをインデックスと、 MongoDB Search は検索ターム123-456-7890 のすべてのドキュメントを返します。

次の表は、 regexCaptureGroupトークナイザと比較してstandardトークナイザが_id: 3を含むドキュメントに対して作成するトークンを示しています。

トークナイザ
Token Outputs

standard

123, 456.9870

regexCaptureGroup

123-456-9870

regexSplit トークナイザは、Java の正規表現に基づく区切り文字を使用してトークンを分割します。

Tip

To learn more about Java regular expression syntax, see the Pattern class in the Java documentation.

The regexSplit tokenizer has the following attributes:

名前
タイプ
必須
説明

type

string

はい

このトークナイザのタイプを識別する、人間が判読できるラベル。 値はregexSplitである必要があります。

pattern

string

はい

照合する正規表現。

次のインデックス定義は、 dashDotSpaceSplitterという名前のカスタムアナライザを使用して、 minutesコレクションのpage_updated_by.phoneフィールドをインデックス化します。 regexSplitトークナイザを使用して、 page_updated_by.phoneフィールドの 1 つ以上のハイフン、ピリオド、スペースからトークン(検索可能なターム)を作成します。

次のクエリは、 minutesコレクションのpage_updated_by.phoneフィールドで数字9870を検索します。

MongoDB Search は、検索タームに一致MongoDBドキュメントの regexSplitトークナイザを使用して、値 9870 のトークンを作成したため、結果に _id: 3 を含むドキュメントを返します。standardトークナイザを使用して page_updated_by.phoneフィールドをインデックスと、 MongoDB Search は検索ターム9870 の結果を返しません。

次の表は、 regexCaptureGroupトークナイザと比較してstandardトークナイザが_id: 3を含むドキュメントに対して作成するトークンを示しています。

トークナイザ
Token Outputs

standard

123, 456.9870

regexSplit

(123), 456, 9870

standardトークナイザは、Unicode テキスト分割アルゴリズムの 単語の分割ルール に基づいてトークン化します。

The standard tokenizer has the following attributes:

名前
タイプ
必須
説明

type

string

はい

このトークナイザのタイプを識別する、人間が判読できるラベル。 値はstandardである必要があります。

maxTokenLength

integer

no

単一トークンの最大長。 この長さを超えるトークンは、 maxTokenLengthで複数のトークンに分割されます。

デフォルト: 255

次のインデックス定義は、 standardExampleという名前のカスタムアナライザを使用して、 minutesコレクションのmessageフィールドをインデックス化します。 standardトークナイザとストップワード トークン フィルター を使用します。

次のクエリは、 minutesコレクションのmessageフィールドでsignatureというタームを検索します。

MongoDB Search は、検索タームに一致MongoDBドキュメントの standardトークナイザを使用して、値 signature のトークンを作成したため、_id: 4 を含むドキュメントを返します。keywordトークナイザを使用して messageフィールドをインデックスと、 MongoDB Search は検索タームsignature の結果を返しません。

次の表は、 standardトークナイザと比較してkeywordアナライザが_id: 4を含むドキュメントに対して作成するトークンを示しています。

トークナイザ
Token Outputs

standard

write, down, your, signature, or, phone

keyword

write down your signature or phone №

uaxUrlEmail トークナイザは URL とメールアドレスをトークン化します。uaxUrlEmail トークナイザは Unicode テキスト セグメンテーション アルゴリズムの単語区切りルールに基づいてトークン化しますが、インデックスフィールド値に URL やメールアドレスが含まれている場合にのみ uaxUrlEmail トークナイザを使用することをお勧めします。URL やメールアドレスを含まないフィールドの場合は、standard トークナイザを使用して単語区切りルールに基づいてトークンを作成します。

The uaxUrlEmail tokenizer has the following attributes:

名前
タイプ
必須
説明

type

string

はい

このトークナイザのタイプを識別する、人間が判読できるラベル。 値はuaxUrlEmailである必要があります。

maxTokenLength

整数

no

1 つのトークン内の最大文字数。

デフォルト: 255

uexUrlEmailトークナイザを使用して単純なインデックスを作成します。

次のインデックス定義は、 basicEmailAddressAnalyzerという名前のカスタムアナライザを使用して、 minutesコレクションのpage_updated_by.emailフィールドをインデックス化します。 uaxUrlEmailトークナイザを使用して、 page_updated_by.emailフィールドのURLとメールアドレスからトークン(検索可能なターム)を作成します。

次のクエリは、 minutesコレクションのpage_updated_by.emailフィールドでメールlewinsky@example.comを検索します。

MongoDB Search は、検索タームに一致MongoDBドキュメントの uaxUrlEmailトークナイザを使用して、値 lewinsky@example.com のトークンを作成したため、結果に _id: 3 を含むドキュメントを返します。standardトークナイザを使用して page_updated_by.emailフィールドをインデックスと、 MongoDB Search は検索タームlewinsky@example.com のすべてのドキュメントを返します。

次の表は、 uaxUrlEmailトークナイザと比較してstandardトークナイザが_id: 3を含むドキュメントに対して作成するトークンを示しています。

トークナイザ
Token Outputs

standard

lewinsky, example.com

uaxUrlEmail

lewinsky@example.com

オートコンプリート トークン化戦略を持つ uexUrlEmailトークナイザを使用してインデックスを作成します。

次のインデックス定義は、 emailAddressAnalyzerという名前のカスタムアナライザを使用して、 minutesコレクションのpage_updated_by.emailフィールドをインデックス化します。 このクエリでは、次の を使用します。

  • トークン化戦略 を持つ オートコンプリート タイプedgeGram

  • URLとメールアドレスからトークン(検索可能なターム)を作成するuaxUrlEmailトークナイザ

次のクエリは、 minutesコレクションのpage_updated_by.emailフィールドでexamというタームを検索します。

MongoDB Search は、検索タームに一致MongoDBドキュメントの uaxUrlEmailトークナイザを使用して、値 lewinsky@example.com のトークンを作成したため、結果に _id: 3 を含むドキュメントを返します。standardトークナイザを使用して page_updated_by.emailフィールドをインデックスと、 MongoDB Search は検索タームlewinsky@example.com のすべてのドキュメントを返します。

次の表は、 uaxUrlEmailトークナイザと比較してstandardトークナイザが_id: 3を含むドキュメントに対して作成するトークンを示しています。

トークナイザ
MongoDB Search フィールド タイプ
Token Outputs

standard

autocomplete edgeGram

le, lew, lewi, lewin, lewins, lewinsk, lewinsky, lewinsky@, lewinsky, ex, exa, exam, examp, exampl, example, example., example.c, example.co, example.com

uaxUrlEmail

autocomplete edgeGram

le, lew, lewi, lewin, lewins, lewinsk, lewinsky, lewinsky@, lewinsky@e, lewinsky@ex, lewinsky@exa, lewinsky@exam, lewinsky@examp, lewinsky@exampl

whitespaceトークナイザは、単語間の空白の発生に基づいてトークン化します。

The whitespace tokenizer has the following attributes:

名前
タイプ
必須
説明

type

string

はい

このトークナイザのタイプを識別する、人間が判読できるラベル。 値はwhitespaceである必要があります。

maxTokenLength

integer

no

単一トークンの最大長。 この長さを超えるトークンは、 maxTokenLengthで複数のトークンに分割されます。

デフォルト: 255

次のインデックス定義は、 whitespaceExampleという名前のカスタムアナライザを使用して、 minutesコレクションのmessageフィールドをインデックス化します。 whitespaceトークナイザを使用して、 messageフィールド内の任意の空白からトークン(検索可能なターム)を作成します。

次のクエリは、 minutesコレクションのmessageフィールドでSIGN-INというタームを検索します。

MongoDB Search は、検索タームに一致MongoDBドキュメントの whitespaceトークナイザを使用して、値 sign-in のトークンを作成したため、結果に _id: 3 を含むドキュメントを返します。standardトークナイザを使用して messageフィールドをインデックスと、 MongoDB Search は検索タームsign-in に対して _id: 1_id: 2_id: 3 を含むドキュメントを返します。

次の表は、 whitespaceトークナイザと比較してstandardトークナイザが_id: 3を含むドキュメントに対して作成するトークンを示しています。

トークナイザ
Token Outputs

standard

try, to, sign, in

whitespace

try, to, sign-in