簡易アナライザ
simple
アナライザは、空白、句読点、1 桁以上の数字など、文字以外の文字を見つけた場合、テキストを検索可能なターム(トークン)に分割します。 すべてのテキストを小文字に変換します。
Atlas UI Visual Editor でインデックスを作成または編集する際、simple
アナライザが組み込みのサンプルドキュメントとクエリ文字列に対して生成するトークンを確認できます。Refine Your Index を選択すると、Atlas UI にはIndex Configurations セクション内に「View text analysis of your selected index configuration」というタイトルのセクションが表示されます。このセクションを展開すると、Atlas UI には、simple
アナライザが各サンプル文字列に対して生成するインデックスと検索トークンが表示されます。
重要
Atlas Search は、アナライザ トークンのサイズが 32766 バイトを超える string フィールドのインデックスを作成しません。キーワード アナライザを使用する場合は、32766 バイトを超える string フィールドのインデックスを作成しません。
例
次のインデックス定義の例では、sample_mflix.movies コレクションの title
フィールドに simple
アナライザを使用してインデックスを指定します。この例に従うには、サンプルデータをクラスターに読み込み、Atlas UI のCreate a Search Index ページに移動し、「Atlas Search インデックスの作成」チュートリアルの手順に従ってください。次に、minutes
コレクションをデータソースとして選択し、例の手順に従って Visual Editor または JSON editor にインデックスを作成します。
インデックスを設定するには、 Refine Your Indexをクリックします。
Index Configurations セクションで、Dynamic Mapping を off に切り替えます。
Field Mappingsセクションで、 Add FieldをクリックしてAdd Field Mappingウィンドウを開きます。
[Customized Configuration] をクリックします。
Field Nameドロップダウンから
title
を選択します。[ Data Type String選択されていない場合は選択します。
String Propertiesを展開し、次の変更を加えます。
インデックスアナライザ
ドロップダウンから [
lucene.simple
] を選択します。searchAnalyzer
ドロップダウンから [
lucene.simple
] を選択します。インデックス オプション
デフォルトの
offsets
を使用します。Store
デフォルトの
true
を使用します。上記を無視
デフォルト設定のままにしてください。
基準
デフォルトの
include
を使用します。[Add] をクリックします。
[Save Changes] をクリックします。
[Create Search Index] をクリックします。
デフォルトのインデックス定義を、以下のインデックス定義で置き換えます。
{ "mappings": { "fields": { "title": { "type": "string", "analyzer": "lucene.simple" } } } } [Next] をクリックします。
[Create Search Index] をクリックします。
次のクエリは、 title
フィールドでlion
というタームを検索し、出力を 5 つの結果に制限します。
1 db.movies.aggregate([ 2 { 3 "$search": { 4 "text": { 5 "query": "lion", 6 "path": "title" 7 } 8 } 9 }, 10 { 11 "$limit": 5 12 }, 13 { 14 "$project": { 15 "_id": 0, 16 "title": 1 17 } 18 } 19 ])
[ { title: 'White Lion' }, { title: 'The Lion King' }, { title: 'The Lion King 1 1/2' }, { title: 'The Lion King 1 1/2' }, { title: 'Lion's Den' }, ]
Atlas Search これらのドキュメントを返すには、 lucene.simple
アナライザを使用してtitle
フィールドのテキストに対して次の操作を実行します。
テキストを小文字に変換します。
文字以外の文字がある場合はテキストを分割して個別のトークンを作成します。
次の表は、Atlas Search が結果内のドキュメントに対して Simple Analyzerと、対照的に標準 アナライザとホワイトスペース アナライザを使用して作成するトークンを示しています。
タイトル | 簡易アナライザ トークン | 標準アナライザ トークン | 空白アナライザ トークン |
---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Atlas Search では、 simple
アナライザがクエリ用語のlion
に一致するlion
用の別のトークンが作成されているため、Atlas Search は結果にドキュメントLion's Den
を返します。 対照的に、標準アナライザまたはホワイトスペースアナライザを使用してフィールドをインデックスすると、Atlas Search はクエリの結果に一部のドキュメントを返しますが、 Lion's Den
は返しません。これらのアナライザはlion's
とLion's
のトークンを作成するためです。それぞれを使用しますが、 lion
のトークンは作成しません。