Atlas Search string
タイプを使用して stringフィールドをインデックス化できます。 Atlas Search phrase 、 queryString 、 span 、 text 、 wildcard 、 regex 、 moreLikeThis演算子を使用して、 string
型としてインデックスのフィールドをクエリできます。
動的マッピングを有効にすると、Atlas Search はstring
型のフィールドを自動的にインデックス化します。 Atlas UI のビジュアル エディターまたはJSON エディターを使用して、 string
タイプのフィールドにインデックスを付けることができます。
string
型の制限
Atlas Searchstring
タイプを使用して、ファセットまたは autocomplete
演算子クエリのフィールドをインデックスことはできません。string
Atlas Search 結果をソートするためのフィールドのインデックス作成には、 タイプは使用できません。代わりに、静的マッピングを使用して string フィールドを次のタイプとしてインデックス必要があります。
トークン タイプを使用して、次の操作を実行できます。
Atlas Search では、ソート、ファセット、または特定の演算子を使用したクエリのために文字列フィールドを動的にインデックスしないことに注意してください。
string フィールドで 演算子クエリを実行するための オートコンプリート タイプ。
autocomplete
Atlas Search は、オートコンプリート用の string フィールドを動的にインデックスしないことに注意してください 。
重要
Atlas Search は、アナライザ トークンのサイズが 32766 バイトを超える string フィールドのインデックスを作成しません。キーワード アナライザを使用する場合は、32766 バイトを超える string フィールドのインデックスを作成しません。
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 |
---|---|---|---|---|
| string | 必須 | このフィールド型を識別する、人間が判読できるラベル。値は | |
| string | 任意 | ||
| string | 任意 | ||
| string | 任意 | インデックス フィールドに保存する情報の量。 値は次のいずれかになります。
|
|
| ブール値 | 任意 | 正確なドキュメント テキストと分析された値をインデックスに保存するかどうかを示すフラグ。 値は インデックス サイズとパフォーマンスのフットプリントを削減するには、 |
|
| 整数 | 任意 | インデックスを作成するフィールドの値の最大文字数。 Atlas Search は、 フィールド値が指定された文字数を超える場合、インデックスを作成しません。 | |
| string フィールドの定義 | 任意 |
| |
| string | 任意 | スコアリング時に結果にフィールドの長さを含めるか省略するかを指定するstring 。 フィールドの長さは、フィールドの アナライザ が生成したトークンの数によって決まります。 値は次のいずれかになります。
値が 値が |
|
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
を選択します。searchAnalyzer
lucene.english
でlucene.language
を選択します。Add Another Multi Fieldをクリックし、 Multi Field Nameフィールドに
french
と入力し、次のMulti Field Propertiesを設定します。インデックスアナライザ
lucene.french
でlucene.language
を選択します。searchAnalyzer
lucene.french
でlucene. language
を選択します。[Add] をクリックします。
デフォルトのインデックス定義を、以下のインデックス定義で置き換えます。
{ "mappings": { "dynamic": false, "fields": { "fullplot": { "type": "string", "multi": { "english": { "type": "string", "analyzer": "lucene.english" }, "french": { "type": "string", "analyzer": "lucene.french" } } } } } }