我可以在Azure表存储中搜索吗?

时间:2017-02-22 00:50:13

标签: azure-storage

我想存储数千人的地址。地址是典型的名称,地址,城市等...我想搜索名字,姓氏,城市等......

我可以使用Azure表存储并使用它的API来执行此操作吗?

2 个答案:

答案 0 :(得分:4)

如果您不介意支付高昂的月费,那么使用Azure搜索为您的表编制索引的评论非常好。

要回答您的问题,您可以使用Azure存储API进行搜索,但在最初构建Azure存储表时,您必须非常有意识地要搜索哪些字段。

唯一的"索引"您必须使用分区和行键。具有相同分区键的实体存储在一起,并且如果分区不大则可以有效地搜索。由于Azure表不强制执行架构,因此您实际上可以将相同的数据存储在不同的分区下,以便于搜索。

假设您有地址Johnny Appleseed 839 Sherman Oaks Drive Knoxville,TN 37497.您可以使用分区键在同一个表中复制此数据:

  • citystate-knoxville_tn_37497
  • 名-appleseed_johnny
  • 街道sherman_oaks

当您的用户尝试搜索时,根据用户输入的条件选择分区,然后Azure将执行完整分区扫描以查找所有匹配的记录。您还需要处理延续令牌。

如果您将分区中的行键指定为搜索条件的一部分,则还可以限制为部分分区扫描。 Azure将仅扫描可能与行键匹配的行。

答案 1 :(得分:1)

Azure存储表只有两个索引属性:PartitionKey& RowKey。查询非索引属性将触发整个表扫描。如果您只需要存储数千条记录,Azure存储表是一个不错的选择,因为它的价格低廉。但是,如果您要存储更多记录,我建议您选择SQL Azure,因为它支持高级索引查询。