Windows Azure存储客户端库2.0 - IndexOf的TableQuery.GenerateFilterCondition(字符串)

时间:2017-09-29 18:41:59

标签: azure azure-storage

我正在尝试将旧的Azure Storage Client 1.7代码重新编写为2.0版代码。

最初我有以下查询:

TableServiceContext context = ...;

TableServiceQuery<LogData> query = null;
            query = (from d in data where 
            d.Message.IndexOf(searchString) > -1
            select d).AsTableServiceQuery<LogData>(context);            
List<LogData> selectedData = new List<LogData>();

selectedData = query.Execute().ToList<LogData>();

我如何将此IndexOf条件重写为2.0 API语法?我已经能够重写我的大多数查询,但似乎没有办法像TableQuery.GenerateFilterCondition这样做:

CloudTable table = ...;

string filter = TableQuery.GenerateFilterCondition("PartitionKey",QueryComparisons.GreaterThanOrEqual, 1000);
TableQuery<LogData> query = (new TableQuery<LogData>()).Where(filter);
List<LogData> selectedData = new List<LogData>();
selectedData = query.Execute().ToList<LogData>();

我已经阅读了微软发布的大量文件,但都没有解决这个问题。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

Azure Tables不支持在文本内搜索。

有两种可能的选择:

  1. 在客户端执行此操作。在这种情况下,您需要在客户端获取所有相关数据,然后应用此第二级过滤器。如果您有太多数据,那么当您下载大量数据时,这将变得非常麻烦。
  2. 使用Azure搜索。您可以将Azure表存储连接到Azure搜索服务索引,然后使用搜索服务执行搜索。在那里,您将能够进行所有模糊搜索。