【问题标题】:Windows Azure Storage Client Library 2.0 -- TableQuery.GenerateFilterCondition for IndexOf(string)Windows Azure 存储客户端库 2.0——IndexOf(string) 的 TableQuery.GenerateFilterCondition
【发布时间】:2017-09-30 03:02:32
【问题描述】:

我正在尝试将旧的 Azure 存储客户端 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>();

我已阅读 Microsoft 发布的大量文档,但均未解决此案例。任何帮助表示赞赏。

【问题讨论】:

    标签: azure azure-storage


    【解决方案1】:

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

    有两种可能的选择:

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

    【讨论】:

      猜你喜欢
      • 2013-08-26
      • 1970-01-01
      • 2011-02-07
      • 2013-02-13
      • 2019-05-29
      • 2018-04-25
      • 2022-01-07
      • 1970-01-01
      • 2022-12-15
      相关资源
      最近更新 更多