2017-03-16 5 views

答えて

1

はい、あなたは、単一のフィールドのインデックスの種類を持つことができます。たとえば、テキスト、2dsphere、ハッシュのインデックスを作成できます

疎なオプションと一意のオプションを使用して同じインデックスを作成することはできません。

すべての書き込み操作は、2つの指数オプションは非常に異なっている

0

この場合には、すべての可能なタイプの関連するインデックス・エントリを更新する予定です。

文字列フィールドに通常のインデックスを作成すると、文字列内の値全体がインデックスされます。あなたが正確に一致することができる単一の単語列(ログインのユーザ名のような)に大抵役立ちます。

他のハードのテキストインデックスは、フィールドの内容をトークン化し、ステムします。文字列を個々の単語やトークンに分割し、それらをさらに茎に縮小して、同じ単語の変形が一致するようにします(「話す」、「話す」、「話す」など)トーク "は3つすべてのステムです)。真のテキスト(文章、段落など)には大抵役立ちます。 テキスト検索

テキスト検索は、コレクションのドキュメント内の文字列コンテンツの検索をサポートしています。 MongoDBは$ text演算子を使用して、クエリと集約パイプラインでのテキスト検索を実行します。

テキスト検索処理:

トークン化とインデックス作成とテキストコマンド実行の両方の間に検索語(複数可)を茎。 は、索引付きフィールドに検索語を含む各文書にスコアを割り当てます。スコアは、特定の検索クエリに対する ドキュメントの関連性を決定します。

$ text演算子は単語やフレーズを検索できます。クエリは完全なステムの単語に一致します。たとえば、文書フィールドに「blueberry」という単語が含まれている場合、用語「blue」の検索は文書と一致しません。ただし、ブルーベリーまたはブルーベリーのいずれかの検索が一致します。 $ regex検索は、パターンマッチングとワイルドカード検索を提供するために、文字列フィールドの通常のインデックスで使用できます。非常に効果的なインデックスユーザーではありませんが、できるだけインデックスを使用します: フィールドにインデックスが存在する場合、MongoDBは正規表現をインデックス内の値と照合します。正規表現が「プレフィックス式」である場合、すべての可能性のある一致が同じ文字列で始まる場合、さらに最適化が行われます。これにより、MongoDBはその接頭辞から "範囲"を構築し、その範囲内にある索引の値とのみ一致します。

http://docs.mongodb.org/manual/core/index-text/

http://docs.mongodb.org/manual/reference/operator/query/regex/