string フィールドのインデックス作成方法
Atlas Search string
タイプを使用して stringフィールドをインデックス化できます。 Atlas Search phrase 、 queryString 、 span 、 text 、 wildcard 、 regex 、 moreLikeThis演算子を使用して、 string
型としてインデックスのフィールドをクエリできます。
動的マッピングを有効にすると、Atlas Search はstring
型のフィールドを自動的にインデックス化します。 Atlas UI のビジュアル エディターまたはJSON エディターを使用して、 string
タイプのフィールドにインデックスを付けることができます。
検討するstring
タイプの制限事項
Atlas Search string
タイプを使用して、ファセットクエリまたはオートコンプリートクエリのフィールドをインデックス化することはできません。 Atlas Search 結果をソートするためのフィールドのインデックス作成には、 string
タイプは使用できません。 代わりに、静的マッピングを使用して string フィールドを次のタイプとしてインデックス化する必要があります。
string フィールドに対して ファセット クエリを実行するための stringFacet 型。Atlas Search は、ファセット用の string フィールドを動的にインデックス化しないことに注意してください。
string フィールドに対して オートコンプリート 演算子 クエリを実行する オート コンプリート タイプ。Atlas Search は、 オートコンプリート 用の string フィールドを 動的に インデックス しないことに注意してください 。
トークンタイプ を使用して、Atlas Search結果を string フィールドでソートします。 Atlas Search では、結果を ソート するために string フィールドを 動的に インデックスすることはありません。
トークン タイプを使用し、 の 、 、および 範囲 演算子 を使用してクエリの完全一致を検索します。では、これらの演算子を使用するクエリで フィールドをAtlas Search タイプとして 動的に インデックスしません。string
token
重要
Atlas Search は、アナライザトークンのサイズが 32766 バイトを超えるstringフィールドのインデックスを作成しません。キーワードアナライザーを使用する場合、32766 バイトを超える文字列フィールドはインデックスされません。
string
型のインデックスを定義する
string
タイプのインデックスを定義するには、Atlas UI で希望する構成方法を選択し、データベースとコレクションを選択します。
[ Refine Your Indexをクリックしてインデックスを構成します。
Field Mappingsセクションで、 Add FieldをクリックしてAdd Field Mappingウィンドウを開きます。
[Customized Configuration] をクリックします。
Field Nameドロップダウンからインデックスするフィールドを選択します。
注意
フィールド名の先頭にドル記号(
$
)が含まれるフィールドにはインデックスを付けられません。Data Typeドロップダウンをクリックし、String を選択します。
(任意) フィールドのString Propertiesを展開して構成します。 詳しくは、「
string
フィールド プロパティの構成 」を参照してください。(任意) Add Multi Fieldをクリックして、そのフィールドの次の代替アナライザ設定を構成します。
Multi Field Nameフィールドに代替アナライザの名前を入力します。
Multi Field Propertiesの下で代替アナライザの string フィールド プロパティを構成します。 詳しくは、「
string
フィールド プロパティの構成 」を参照してください。(任意) Add Another Mult Fieldをクリックし、ステップ1とbを繰り返して、フィールドのさらにのアナライザを設定します。
[Add] をクリックします。
以下は、 string
型の JSON構文です。 デフォルトのインデックス定義を以下のように置き換えます。 フィールドの詳細については、「フィールド プロパティ」を参照してください。
{ "mappings": { "dynamic": true|false, "fields": { "<field-name>": { "type": "string", "analyzer": "<atlas-search-analyzer>", "searchAnalyzer": "<atlas-search-analyzer>", "indexOptions": "docs|freqs|positions|offsets", "store": true|false, "ignoreAbove": <integer>, "multi": {<string-field-definition>}, "norms": "include|omit" } } } }
string
フィールド プロパティを構成する
Atlas Search string
型は次のパラメータを取ります。
オプション | タイプ | 必要性 | 説明 | default |
---|---|---|---|---|
type | string | 必須 | このフィールド型を識別する、人間が判読できるラベル。値は string でなければなりません。 | |
analyzer | string | 任意 | ||
searchAnalyzer | string | 任意 | ||
indexOptions | string | 任意 | インデックス フィールドに保存する情報の量。 値は次のいずれかになります。
| offsets |
store | ブール値 | 任意 | 正確なドキュメント テキストと分析された値をインデックスに保存するかどうかを示すフラグ。 値は インデックス サイズとパフォーマンスのフットプリントを削減するには、 | true |
ignoreAbove | 整数 | 任意 | インデックスを作成するフィールドの値の最大文字数。 Atlas Search は、 フィールド値が指定された文字数を超える場合、インデックスを作成しません。 | |
multi | string フィールドの定義 | 任意 | ||
norms | string | 任意 | スコアリング時に結果にフィールドの長さを含めるか省略するかを指定するstring 。 フィールドの長さは、フィールドの アナライザ が生成したトークンの数によって決まります。 値は次のいずれかになります。
値が 値が | include |
string
型の例を試す
次のインデックス定義の例では、 sample_mflix.moviesコレクションを使用します。 サンプル データがすでにクラスターにロードされている場合は、Atlas UI のビジュアル エディターまたはJSONエディターを使用してインデックスを構成できます。 ご希望の構成方法を選択したら、データベースとコレクションを選択し、インデックスを微調整してフィールド マッピングを追加します。
次のインデックス定義では、 title
フィールドの string 値を Atlas Search string
タイプとしてインデックス化します。
Add Field Mappingウィンドウで、 Field Nameドロップダウンからtitleを選択します。
Data Typeドロップダウンをクリックし、String を選択します。
String Propertiesのデフォルト設定を確認します。
[Add] をクリックします。
デフォルトのインデックス定義を、以下のインデックス定義で置き換えます。
{ "mappings": { "dynamic": false, "fields": { "title": { "type": "string" } } } }
次のインデックス定義では、デフォルトの アナライザに加えて アナライザと アナライザを使用して、 フィールドの string 値をインデックス化します。fullplot
lucene.english
lucene.french
lucene.standard
Add Field Mappingウィンドウで、 Field Nameドロップダウンからfullplotを選択します。
Data Typeドロップダウンをクリックし、String を選択します。
String Propertiesのデフォルト設定を確認します。
Add Multi Fieldをクリックし、 Multi Field Nameフィールドに
english
と入力し、次のMulti Field Propertiesを設定します。インデックスアナライザlucene.english
でlucene.language
を選択します。searchAnalyzerlucene.english
でlucene.language
を選択します。Add Another Multi Fieldをクリックし、 Multi Field Nameフィールドに
french
と入力し、次のMulti Field Propertiesを設定します。インデックスアナライザlucene.french
でlucene.language
を選択します。searchAnalyzerlucene.french
でlucene. language
を選択します。[Add] をクリックします。
デフォルトのインデックス定義を、以下のインデックス定義で置き換えます。
{ "mappings": { "dynamic": false, "fields": { "fullplot": { "type": "string", "multi": { "english": { "type": "string", "analyzer": "lucene.english" }, "french": { "type": "string", "analyzer": "lucene.french" } } } } } }