Docs Menu
Docs Home
/
MongoDB Atlas
/ / / /

キーワードアナライザ

keywordアナライザは、string または string の配列をパラメータとして受け入れ、それらを単一のターム(トークン)としてインデックスします。 フィールドの完全一致のみが返されます。 すべてのテキストは元の文字大文字と小文字のままになります。

Tip

完全一致を行うには、 keywordアナライザを使用する代わりに、フィールドを Atlas Search トークンタイプとしてインデックス化し、等価演算子を使用してフィールドを検索します。

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

重要

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

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

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

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

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

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

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

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

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

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

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

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

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

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

次のクエリは、 titleフィールドでフレーズClass Actionを検索します。

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

Atlas Search がドキュメントを返すのは、 lucene.keywordアナライザを使用して、クエリ用語Class Actionと、フィールドのテキスト用に作成される単一トークンClass Actionが照合したためです。 対照的に、Atlas Search では、次のクエリの結果は返されません。

db.cases.aggregate([
{
"$search": {
"text": {
"query": "action",
"path": "title"
}
}
}
])

コレクション内の多くのドキュメントには string actionが含まれていますが、 keywordアナライザは、検索タームが フィールドのコンテンツ全体に完全に一致するドキュメントのみを照合します。 上記のクエリでは、 keywordアナライザは結果を返しません。 ただし、標準アナライザまたはシンプルアナライザを使用してフィールドをインデックスすると、Atlas Search は結果内にタイトル フィールド値がClass Actionであるドキュメントを含む複数のドキュメントを返します。これは、次のようなトークンを作成するためです。クエリ用語に一致します。

analyzer
出力トークン
マッチ action
マッチ Class Action
キーワード アナライザ トークン
Class Action
X
標準アナライザ トークン
class, action
簡易アナライザ トークン
class, action

戻る

Whitespace