Docs Menu

Docs Homeアプリケーションの開発Python ドライバーPyMongo

Text Indexes

項目一覧

  • Overview
  • サンプル データ
  • 単一フィールドのテキストインデックス
  • 複数のフィールドのテキストインデックス

テキスト インデックスは、string コンテンツに対するテキスト検索クエリをサポートします。 これらのインデックスには、値が string または複数の string 配列である任意のフィールドを含めることができます。 MongoDB はさまざまな言語のテキスト検索をサポートしています。 インデックスの作成時に、オプションとしてデフォルト言語を指定できます。

Tip

MongoDB は、改良された全文検索ソリューションである Atlas Searchを提供します。 Atlas Search インデックスとその使用方法の詳細については、「 Atlas Search インデックス 」のガイドを参照してください。

このガイドの例では、 Atlas サンプル データセット sample_mflix.moviesコレクションを使用します。 MongoDB Atlas クラスターを無料で作成して、サンプル データセットをロードする方法については、 PyMongo を使い始める を参照してください。

次の例では、 plotフィールドに テキスト インデックスを作成しています。

movies.create_index(
[( "plot", "text" )]
)

以下は、前のコード例で作成されたインデックスを使用するクエリの例です。

query = { "$text": { "$search": "a time-traveling DeLorean" } }
cursor = movies.find(query)

コレクションには 1 つのテキスト インデックスのみを含めることができます。 複数のテキストフィールドのテキストインデックスを作成する場合は、複合インデックスを作成します。 複合インデックス内のすべてのテキスト フィールドに対してテキスト検索が実行されます。

次の例では、 フィールドと フィールドの複合テキストtitle genreインデックスを作成します。

result = myColl.create_index(
[("title", "text"), ("genre", "text")],
default_language="english",
weights={ "title": 10, "genre": 3 }
)

詳細については、 マニュアルの「 複合テキストインデックスの制限 」と「 テキストインデックスMongoDB Server 」を参照してください。

← Atlas Search インデックス