Docs Menu
Docs Home
/
Atlas
/ / /

アナライザによるデータ処理

アナライザを使用して、 MongoDB Search がstring フィールドの内容を検索可能なタームに変換する方法を制御できます。アナライザは、テキストからトークンを抽出するトークナイザポリシー と、定義した フィルター を組み合わせたものです。MongoDB Search は フィルター をトークンに適用して、句読点、大文字、埋め込み単語などにおける差異を修正する索引可能なタームを作成します。

インデックスを構築するときやデータベースを検索するときにMongoDB Search が使用する アナライザ をインデックス定義で指定できます。個々のフィールドのインデックスを作成するときに使用する の代替(マルチ)アナライザを指定したり、独自のカスタムアナライザを定義したりすることもできます。

次のタブは、インデックス定義で設定できるアナライザオプションの構文を示しています。

MongoDB Search のインデックス定義で analyzer オプションを使用してインデックスを構築するときに、string フィールドに適用するMongoDB Search のインデックスアナライザを指定できます。

MongoDB Search は、フィールドの mappings.fields 定義内のフィールドに別のアナライザを指定しない限り、インデックス定義内のすべてのフィールドに最上位のアナライザを適用します。

analyzer オプションを省略すると、 MongoDB Search はデフォルトで 標準アナライザを使用します。

1{
2 "analyzer": "<analyzer-for-index>",
3 "mappings": {
4 "fields": {
5 "<string-field-name>": {
6 "type": "string",
7 "analyzer": "<analyzer-for-field>"
8 }
9 }
10 }
11}

MongoDB Searchインデックス定義で searchAnalyzer オプションを使用して、クエリ テキストに適用するMongoDB Search の検索アナライザを指定できます。

searchAnalyzer オプションを省略すると、 MongoDB Search はデフォルトで、analyzer オプションに指定したアナライザを使用します。両方のオプションを省略すると、 MongoDB Search はデフォルトで 標準 アナライザを使用します。

1{
2 "searchAnalyzer": "<analyzer-for-query>",
3 "mappings": {
4 "dynamic": <boolean>,
5 "fields": { <field-definition> }
6 }
7}

MongoDB Search のインデックス定義で multi オプションを使用してインデックスを構築するときに、 MongoDB Search が string フィールドに適用する代替アナライザを指定できます。

MongoDB Search クエリで代替アナライザを使用するには、クエリ演算子のクエリパスmultiフィールドに代替アナライザの名前を指定する必要があります。

詳しくは、「 マルチアナライザ 」を参照してください。

1{
2 "mappings": {
3 "fields": {
4 "<string-field-name>": {
5 "type": "string",
6 "analyzer": "<default-analyzer-for-field>",
7 "multi": {
8 "<alternate-analyzer-name>": {
9 "type": "string",
10 "analyzer": "<alternate-analyzer-for-field>"
11 }
12 }
13 }
14 }
15 }
16}

MongoDB Searchインデックスの analyzers オプションを使用して、文字シーケンスを変換、フィルタリング、グループ化するための 1 つ以上のカスタムアナライザを定義できます。

定義したカスタムアナライザを使用するには、インデックス定義の analyzersearchAnalyzer、または multi.analyzer オプションにそのname値を指定します。

詳細については、カスタムアナライザを参照してください。

1{
2 "mappings": {
3 "dynamic": <boolean>,
4 "fields": { <field-definition> }
5 },
6 "analyzers": [
7 {
8 "name": "<custom-analyzer-name>",
9 "tokenizer": {
10 "type": "<tokenizer-type>"
11 }
12 }
13 ]
14}

Tip

ビデオで学ぶ

このビデオでは、 MongoDB Search が アナライザ を使用してドキュメントを検索可能なユニットに分割し、 逆インデックスを構築する方法を確認します。

所要時間: 8分

MongoDB Search は、次の組み込みアナライザを提供します。

analyzer
説明

すべてのMongoDB Search インデックスとクエリにデフォルトのアナライザを使用します。

文字以外の文字が見つかった場合、テキストを検索可能なタームに分割します。

空白文字が見つかった場合は、テキストを検索可能なタームに分割します。

テキスト フィールドを単一の用語としてインデックスします。

言語固有のテキスト アナライザ のセットを提供します。

インデックス定義でアナライザを指定しない場合、MongoDBはデフォルトの標準アナライザを使用します。

正規表現は、分析の最後に 1 つのトークンのみを生成します。正規表現は、 MongoDB Search トークン タイプのフィールド定義でのみ構成できます。MongoDB Search は次の正規表現を提供します。

正規表現
説明

lowercase

string フィールド内のテキストを小文字に変換し、string 全体に対して単一のトークンを作成します。

none

変換は実行されませんが、単一のトークンが作成されます。

アナライザの詳細については、MongoDB Developer Center でアナライザを分析してアプリに適切な検索インデックスを構築するを参照してください。

戻る

インデックス参照

項目一覧