このチュートリアルでは、フィールドを文字列に変換し、マテリアライズドビューに保存することで、非文字列フィールドに対して文字列特有のクエリを実行する方法を示します。マテリアライズドビューを使用すると、変換されたフィールドを文字列固有の演算子を使ってクエリし、元のデータをソース コレクションにそのまま保持できます。
このチュートリアルでは、次の手順について説明します。
開始する前に、クラスターが前提条件に記載されている要件を満たしていることを確認してください。
マテリアライズドビューの作成
このセクションでは、 airbnb-mat-viewsample_airbnb.listingsAndReviews に、 という名前の マテリアライズドビュー を作成する方法を説明します。コレクション.このビューでは、ソースコレクションの様々な数値フィールドと日付フィールドを string フィールドとして保存します。
マテリアライズドビューでのMongoDB Search インデックスの作成
このチュートリアルの「変換されたフィールドでクエリを実行」ステージのクエリを実行するには、airbnb_mat_view マテリアライズドビューの変換された文字列フィールドにMongoDB Search インデックスを作成する必要があります。
The following JSON definitions define MongoDB Search indexes on the airbnb_mat_view materialized view. You can use dynamic or static mappings to specify which fields you want to index in your collection, depending on the type of queries you want to run. To learn more about field mappings or MongoDB Search index syntax, see Define Field Mappings for a MongoDB Search Index or Index Reference, respectively.
次のJSON MongoDB Searchインデックス定義では、動的マッピングを使用してマテリアライズドビュー内のフィールドにインデックス。このインデックスを使用して、queryString 演算子を使用してクエリを実行できます。
動的にインデックスされたフィールドに対して オートコンプリート 演算子を使用してクエリを実行することはできません。
{ "mappings": { "dynamic": true } }
次のJSON MongoDB Searchインデックス定義では、静的マッピングを使用してマテリアライズドビュー内のフィールドをオートコンプリートタイプとしてインデックス。このインデックスを使用して、オートコンプリート演算子を使用してクエリを実行できます。
タイプ autocomplete としてインデックス付けされたフィールドに対して queryString 演算子を使用するクエリは実行できません。
{ "mappings": { "dynamic": false, "fields": { "accommodatesNumber": [ { "dynamic": true, "type": "document" }, { "minGrams": 1, "type": "autocomplete" } ], "lastScrapedDate": [ { "dynamic": true, "type": "document" }, { "type": "autocomplete" } ], "maximumNumberOfNights": [ { "dynamic": true, "type": "document" }, { "minGrams": 1, "type": "autocomplete" } ] } } }
希望するインターフェースを使用して、上記で定義されたインデックスを作成する方法については、サポートされているクライアントを参照してください。
変換されたフィールドでのクエリの実行
string に変換された数値フィールドと日付フィールドに対してクエリを実行できます。 このチュートリアルでは、 queryStringとオートコンプリート演算子を使用してプロパティを検索します。 クエリは、次のパイプライン ステージを使用します。
このセクションでは、クラスターに接続し、 airbnb_mat_viewコレクションのフィールドに対して 演算子を使用してサンプルクエリを実行します。
Query with queryString
The following procedure runs queryString queries against the converted fields. Use the index that you created with dynamic mappings.
Query with autocomplete
The following procedure runs autocomplete queries against the converted fields. Use the index that you created with static mappings.