Docs Menu
Docs Home
/
Atlas
/ / / /

簡易アナライザ

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 にインデックスを作成します。

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

  2. Index Configurations セクションで、Dynamic Mappingoff に切り替えます。

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

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

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

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

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

    インデックスアナライザ

    ドロップダウンから [lucene.simple] を選択します。

    searchAnalyzer

    ドロップダウンから [lucene.simple] を選択します。

    インデックス オプション

    デフォルトのoffsetsを使用します。

    Store

    デフォルトのtrueを使用します。

    上記を無視

    デフォルト設定のままにしてください。

    基準

    デフォルトのincludeを使用します。

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

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

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

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

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

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

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

1db.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と、対照的に標準 アナライザホワイトスペース アナライザを使用して作成するトークンを示しています。

タイトル
簡易アナライザ トークン
標準アナライザ トークン
空白アナライザ トークン

White Lion

white, lion

white, lion

White, Lion

The Lion King

the, lion, king

the, lion, king

The, Lion, King

The Lion King 1 1/2

the, lion, king

the, lion, king, 1, 1, 2

The, Lion, King, 1, 1/2

Lion's Den

lion, s, den

lion's, den

Lion's, Den

Atlas Search では、 simpleアナライザがクエリ用語のlionに一致するlion用の別のトークンが作成されているため、Atlas Search は結果にドキュメントLion's Denを返します。 対照的に、標準アナライザまたはホワイトスペースアナライザを使用してフィールドをインデックスすると、Atlas Search はクエリの結果に一部のドキュメントを返しますが、 Lion's Denは返しません。これらのアナライザはlion'sLion'sのトークンを作成するためです。それぞれを使用しますが、 lionのトークンは作成しません。

戻る

標準