2017-01-02 5 views
0

これは私が持っていた別の質問へのフォローアップの質問です - Benefits of using Document DB after connecting with Azure SearchDocumentDBで使用するデータ・モデリングとAzureの検索

DocumentDBでデータを保存し、Azureの検索との統合は二回、あなたのデータをモデル化する必要があります - のために一度DocDBの文書とAzure Searchの検索エンティティの文書です。

これを成功させた人はいますか? Azure Searchの検索エンティティとしてDocDBで定義した文書を再利用する方法はありますか?

EDIT:私はすでにAzure Searchで検索できるインデクサーと統合しており、検索自体は素晴らしいです。私は今、以下のシナリオに直面しています。いくつかのプロパティをフィルタリングするDocumentDBのクエリを使用してアイテムを取得します。同じフィルタセットで検索を許可するには、インデックスのフィールドとして使用するプロパティを指定する必要があります。

class MyItem 
{ 
    public string Name { get; set;} 
    public double Price { get; set; } 
} 
:だからこれらのフィールドを指定することによって、私は基本的に私はDOCDBに格納以下のクラスがあるとし、例えば、新しいデータモデル(私はDocumentDBを持っているクラスのその重複)

を作成しています

私は、名前を検索して価格をフィルタリングすることを指定して、インデックスを作成します。それはまた、今私は濾過可能私のインデックスのフィールド、および再インデックスとしてIsAvailabileを追加する必要があります。可用性

class MyItem 
{ 
    public string Name { get; set;} 
    public double Price { get; set; } 
    public bool IsAvailable { get; set; } 
} 

を示しているように、今、私はクラスに新しい機能を追加しますしたがって、インデクサーのフィールドリストはクラスのプロパティの複製であり、コード内での結合も発生します。これに効果的に対処する方法はありますか?

+0

私は質問を理解しているか分かりません。 Azure SearchでIndexerを使用してDocument DBからデータを取得していますか?多くの顧客がこの機能を使用しているため、「これを成功させました」と認定する必要があります。特定の問題がありますか? –

+0

私の質問に詳細が追加されました – PartlyCloudy

+1

文書がフラットなものであれば、インデクサーのクエリはまったく必要ありません。デフォルトのクエリは 'select * from cと似ていますが、どこにc._ts> = ' @HighWaterMark order by c._ts'を使用すると、DocumentDbドキュメントの新しいフィールドが自動的に取得されます。ただし、検索インデックススキーマに新しいフィールドを追加する必要があります。 –

答えて

0

何百ものお客様が、DocumentDBと検索の統合を成功させています。ただし、DocumentDbは任意のJSONドキュメントの保存をサポートしていますが、Azure Searchは現在、プリミティブ型と文字列配列からなる「フラット」ドキュメントのみをサポートしています。したがって、データソースのクエリパラメータを使用して、DocumentDbドキュメントを検索スキーマの形に「平坦化」する必要があります。

+0

詳細を指定して質問を更新しました。 – PartlyCloudy

関連する問題