2017-08-22 10 views
1

初めてAzure Searchを使用しています。私は、生成されたデータセットを使用してこの例をフォローしました。今私は自分のデータベースでAzure検索を実装したいと思います。Azure Search with documentDBでデータが見つかりません

これは、インデックスを作成するコレクションのアイテムの例です。

{ 
"_id" : "Watch", 
"name" : "Watch", 
"cloudProvider" : "azure", 
"channel" : "C6SELFQMD", 
"services" : [ 
    "azure-backup", 
    "azure-data-lake-analytics", 
    "backup", 
    "blobstorage", 
    "site-recovery", 
    "storage" 
], 
"__v" : 0 

}

Azureの検索自体が偶数フィールドを検出しません。

enter image description here

enter image description here

私は手動でフィールドを追加した場合、それは無駄なデータを返します。

これは私がやっている段階です。誰かがなぜこれが起こっているのか知っていますか?現時点で私のコレクションには2つのアイテムしかありませんが、これは問題ではないと思いますか?

更新: 問題は私のID( "_id")の前にアンダースコアがあることです。今、私はfieldMappingsを使ってこの問題を解決しようとしています。しかし、APIの応答は次のとおりです。

{ 
    "error": { 
     "code": "", 
     "message": "Data source does not contain column '_id', which is required because it maps to the document key field 'id' in the index 'index'. Ensure that the '_id' column is present in the data source, or add a field mapping that maps one of the existing column names to 'id'." 
    } 
} 
+0

値($ t、$ vなど)から、データソースはDocumentDB APIを使用したCosmos DBアカウントではないようです。 Cosmos DBアカウントのAPIを確認してください。 –

+0

私はそれがDocumentDB APIを使用してCosmos DBアカウントで実行されることを100%確信しています。私はプロパティ "_id"を持っているので、このエラーがトリガすることができますか?私はアンダースコアが問題を作り出していると思います。 –

+0

'フィールド名がアンダースコアで始めることはできないので、間違いなく" _id "' - >というプロパティがあるので、このエラーが発生する可能性があります。ここにある命名規則を参照してください:https://docs.microsoft.com/en-us/rest/api/searchservice/naming-rules。私は$ v、$ tのプロパティのためにコメントをしました。私はCosmos DBアカウントのテーブルAPIを使って見てきました。 –

答えて

2

Azureの検索は現在、DocumentDBアカウントではなく、表の保管やMongoDBのをサポートしています。コメントで指摘されているように、あなたのアカウントは非DocumentDB Cosmos DBアカウントのようです。たとえば、各DocumentDBドキュメントには自動的にidプロパティがありますが、これは例にはありません。

Azure SearchでMongoDBのインデックス作成をサポートするには、DocumentDB indexer should be able to index MongoDb collectionsに投票してください。

関連する問題