CreateDocumentQuery
;を使用してLAMBDA式を使用して、単純な「LIKE」クエリを実行しようとしています。しかし、試し.Contains
てみてSqlMethod.Like
、両方とも応答を受け取った後、NotImplementedException
次に何を試すべきかわかりません!
質問する
1579 次
2 に答える
3
更新: 2015 年 5 月 6 日の時点で、DocumentDB は、、、およびを含む文字列関数のセットを追加しました。これらの関数のほとんどはインデックスでは実行されず、スキャンが強制されることに注意してください。STARTSWITH
ENDSWITH
CONTAINS
LIKE
CONTAINS
DocumentDB ではまだサポートされていません。
DocumentDB フィードバック ページをチェックして、機能 ( LIKEやCONTAINSなど) に投票して、あなたの声を聞いてください!
于 2014-11-06T22:51:30.850 に答える
0
より大きなオブジェクトのプロパティの控えめなサブセットに対して検索する必要があるだけだったので、.Contains
以下のような検索機能を実装しました。パフォーマンスやスケーラビリティについてはわかりませんが、期待どおりに機能します。
ドメイン モデル
public interface ITaxonomySearchable
{
string Name { get; set; }
string Description { get; set; }
}
public class TaxonomySearchInfo : ITaxonomySearchable {
[JsonProperty(PropertyName = "id")]
public Guid Id { get; set; }
[JsonProperty(PropertyName = "name")]
public string Name { get; set; }
[JsonProperty(PropertyName = "description")]
public string Description { get; set; }
}
public class TaxonomyContainer : ITaxonomySearchable
{
[JsonProperty(PropertyName = "id")]
public Guid Id { get; set; }
[JsonProperty(PropertyName = "userId")]
public string UserId { get; set; }
[JsonProperty(PropertyName = "name")]
public string Name { get; set; }
[JsonProperty(PropertyName = "description")]
public string Description { get; set; }
[JsonProperty(PropertyName = "tags")]
public string[] Tags { get; set; }
[JsonProperty(PropertyName = "taxonomy")]
public Node[] Taxonomy { get; set; }
}
検索方法
public async static Task<List<TaxonomySearchInfo>> Search(string searchTerm)
{
var db = GetJsonDocumentDb.GetDb();
using (var client = GetJsonDocumentDb.GetClient())
{
var documentCollection = await GetJsonDocumentDb.GetDocumentCollection(db, client, "TaxonomyContainerCollection");
return client.CreateDocumentQuery<TaxonomySearchInfo>(documentCollection.DocumentsLink)
.AsEnumerable()
.Where(r => r.Name.Contains(searchTerm) || r.Description.Contains(searchTerm))
.ToList();
}
}
于 2014-11-08T01:16:39.757 に答える