2017-02-22 62 views

回答

3

如果您不介意支付沉重的月租費,那麼使用Azure Search爲您的表編制索引的評論非常好。

要回答您的問題,您可以使用Azure存儲API進行搜索,但是最初構建Azure存儲表時,您必須非常有意地搜索要搜索的字段。

您必須使用的唯一「索引」是分區和行鍵。具有相同分區鍵的實體存儲在一起,並且如果分區不大,可以有效地進行搜索。由於Azure表不強制架構,因此您可以在不同的分區下實際存儲相同的數據以簡化搜索。

假設你有地址約翰尼蘋果核戰839謝爾曼奧克斯驅動諾克斯維爾37497.您可以與分區鍵複製在同一個表這樣的數據:

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

當用戶嘗試搜索,選擇基於用戶輸入的標準分區,然後將天青PERFO rm進行完整的分區掃描以查找所有匹配的記錄。你還需要處理連續令牌。

如果您在分區中指定行鍵以成爲搜索條件的一部分,那麼也可以限制爲部分分區掃描。 Azure將只掃描可能與行密鑰匹配的行。

+1

這是根據您的不同查詢需求對數據和數據模型進行非規格化的好回答。不幸的是,需要處理的還有一件事情是一致的(只有當你關心的時候:) Azure不提供對不同分區鍵的原子批處理操作的支持。看看這裏:https://azure.microsoft.com/en-us/documentation/articles/storage-table-design-guide/#eventually-consistent-transactions-pattern –

+0

杜杜,你是絕對正確的。感謝您的補充。 –

1

Azure存儲表只有兩個索引屬性:PartitionKey & RowKey。查詢非索引屬性將觸發整個表掃描。如果您只需要存儲數千條記錄,由於其低價格,Azure存儲表是一個不錯的選擇。但是,如果你要存儲更多的記錄,我建議你選擇SQL Azure,因爲它支持高級索引查詢。

相關問題