4

CreateDocumentQuery;を使用してLAMBDA式を使用して、単純な「LIKE」クエリを実行しようとしています。しかし、試し.ContainsてみてSqlMethod.Like、両方とも応答を受け取った後、NotImplementedException次に何を試すべきかわかりません!

4

2 に答える 2

3

更新: 2015 年 5 月 6 日の時点で、DocumentDB は、、、およびを含む文字列関数のセットを追加しました。これらの関数のほとんどはインデックスでは実行されず、スキャンが強制されることに注意してください。STARTSWITHENDSWITHCONTAINS

LIKECONTAINSDocumentDB ではまだサポートされていません。

DocumentDB フィードバック ページをチェックして、機能 ( LIKECONTAINSなど) に投票して、あなたの声を聞いてください!

于 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 に答える