Docs Menu
Docs Home
/ /

非アルファベットデータを文字列として検索する方法

このチュートリアルでは、非文字列フィールドを文字列に変換して マテリアライズドビューに保存することで、文字列専用のクエリを非文字列フィールドに対して実行する方法を紹介します。マテリアライズドビューを使用すると、文字列専用の演算子を用いて変換されたフィールドをクエリし、元のデータをソース コレクションにそのまま保持できます。

このチュートリアルでは、次の手順について説明します。

  1. サンプルコレクションにマテリアライズドビューを作成する

  2. マテリアライズドビューでのMongoDB Search インデックスの作成

  3. マテリアライズドビューの変換されたフィールドに対してMongoDB Search クエリを実行

開始する前に、クラスターが 前提条件に記載されている要件を満たしていることを確認してください。

このセクションでは、sample_ Airbnb.listingAnd Reviews で という名前のマテリアライズドビューを作成する方法を説明します。airbnb-mat-viewコレクション。このビューでは、ソースコレクションのさまざまな数値フィールドと日付フィールドを string フィールドとして保存します。

このチュートリアルの「変換されたフィールドでクエリを実行」ステージのクエリを実行するには、airbnb_mat_view マテリアライズドビューの変換された文字列フィールドにMongoDB Search インデックスを作成する必要があります。

次の JSON定義は、 マテリアライズドビューのMongoDB Searchairbnb_mat_view インデックスを定義します。動的マッピングまたは静的マッピングを使用して、実行するクエリのタイプに応じて、コレクション内でインデックスするフィールドを指定できます。フィールドマッピングまたはMongoDB Searchインデックス構文の詳細については、それぞれ「フィールドマッピングの定義」または「インデックスリファレンス」を参照してください。

次の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オートコンプリート演算子を使用してプロパティを検索します。 クエリは、次のパイプライン ステージを使用します。

  • $search コレクションを検索するステージ

  • 出力を5の結果に制限する$limitステージ

  • $project 除外するステージ _id

このセクションでは、クラスターに接続し、 airbnb_mat_viewコレクションのフィールドに対して 演算子を使用してサンプルクエリを実行します。

注意

マテリアライズドビューで文字列に変換された日付および数値フィールドに対して、近くのクエリまたは範囲のクエリを実行することはできません。

戻る

データモデル向けに検索機能を設計する

項目一覧