Docs Menu
Docs Home
/
MongoDB Atlas
/ / / /

標準アナライザ

standardアナライザは、すべての Atlas Search インデックスとクエリのデフォルトです。 テキストを単語の境界に基づいてタームに分割するため、ほとんどのユースケースで言語に依存しません。 すべてのタームが小文字に変換され、句読点が削除されます。 これは、メールアドレス、頭字語、中国語、日が照合、文字、英数字などを認識する文字列ベースのトークン化を提供します。

アナライザが組み込み静的 用に作成するトークンは、standardstring AtlasUI 2}Visual Editor Refine Your Indexで確認できます。Index Configurationsセクションには、インデックスで使用するアナライザを選択するためにView text analysis of your selected index configurationを展開すると、 standardアナライザが作成するインデックスと検索トークンが表示されます。

重要

Atlas Search は、アナライザトークンのサイズが 32766 バイトを超えるstringフィールドのインデックスを作成しません。キーワードアナライザーを使用する場合、32766 バイトを超える文字列フィールドはインデックスされません。

次のインデックス定義の例では、 standardアナライザを使用して、 sample_mflix.moviesコレクションのtitleフィールドのインデックスを指定します。 コレクションをクラスターにロードした場合は、Atlas UI ビジュアル エディターまたは JSONエディターを使用してサンプル インデックスを作成できます。 ご希望の構成方法を選択したら、データベースとコレクションを選択します。

  1. インデックスを設定するには、 Refine Your Indexをクリックします。

  2. Field Mappingsセクションで、 Add Field MappingをクリックしてAdd Field Mappingウィンドウを開きます。

  3. [Customized Configuration] をクリックします。

  4. Field Nameドロップダウンからtitleを選択します。

  5. [ Data Type String選択されていない場合は選択します。

  6. String Propertiesを展開し、次の変更を加えます。

    インデックスアナライザ
    まだ選択されていない場合は、ドロップダウンから [ lucene.standard ] を選択します。
    searchAnalyzer
    まだ選択されていない場合は、ドロップダウンから [ lucene.standard ] を選択します。
    インデックス オプション
    デフォルトのoffsetsを使用します。
    Store
    デフォルトのtrueを使用します。
    上記を無視
    デフォルト設定のままにしてください。
    基準
    デフォルトのincludeを使用します。
  7. [Add] をクリックします。

  8. [Save Changes] をクリックします。

  9. [Create Search Index] をクリックします。

  1. デフォルトのインデックス定義を、以下のインデックス定義で置き換えます。

    {
    "mappings": {
    "fields": {
    "title": {
    "type": "string",
    "analyzer": "lucene.standard"
    }
    }
    }
    }
  2. [Next] をクリックします。

  3. [Create Search Index] をクリックします。

次のクエリは、 titleフィールドでactionというタームを検索し、出力を 2 つの結果に制限します。

db.movies.aggregate([
{
"$search": {
"text": {
"query": "action",
"path": "title"
}
}
},
{
"$limit": 2
},
{
"$project": {
"_id": 0,
"title": 1
}
}
])
[
{
title: 'Action Jackson'
},
{
title: 'Class Action'
}
]

Atlas Search がこれらのドキュメントを返すのは、クエリ用語actionとドキュメントのトークンactionが一致しているためです。Atlas Search はlucene.standardアナライザを使用してtitleフィールドのテキストに対して次の操作を実行して作成しました。

  • テキストを小文字に変換します。

  • 単語の境界に基づいてテキストを分割し、個別のトークンを作成します。

次の表は、 標準アナライザを使用して Atlas Search が作成するトークン(検索可能なターム)と、結果内のドキュメント用に Atlas Search がキーワード アナライザ空白アナライザ用に作成するトークンを示しています。

タイトル
標準アナライザ トークン
キーワード アナライザ トークン
空白アナライザ トークン
Action Jackson
action, jackson
Action Jackson
Action, Jackson
Class Action
class, action
Class Action
Class, Action

次のインデックスを使用してフィールドをインデックスする場合:

  • キーワード アナライザ。Atlas Search では、クエリ用語actionの結果内のドキュメントは一致しません。 keywordアナライザは、検索用語が フィールドの内容全体に一致するドキュメントのみと一致するためです( Action JacksonClass Action )を含むドキュメントをインポートしようとすると、エラーを返します。

  • ホワイトスペース アナライザ 、 では、クエリ用語Atlas Search の結果内のドキュメントがaction whitespacetitleActionactionwhitespaceアナライザ トークンと一致しない 。

戻る

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