Docs Menu

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

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

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

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

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

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

analyzer オプションを省略すると、Atlas 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}

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

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

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

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

Atlas 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}

Atlas 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}

その他の参照: ビデオで学ぶ

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

所要時間: 8分

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

analyzer
説明

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

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

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

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

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

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

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

正規表現
説明

lowercase

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

none

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

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