2015-05-20 89 views
0

Azure Search索引應用於SQL Azure數據庫似乎很容易。我承諾,您使用REST API查詢搜索索引,然後需要維護/更新索引。現在,考慮運行IIS的Web服務器,其底層爲SQL Server數據庫。從IIS或SQL Server查詢Azure搜索?

什麼被認爲是最佳實踐;從Web服務器或從SQL Server查詢和更新索引,例如從CLR存儲過程內?這裏有具體的設計考慮嗎?

回答

1

我在Azure搜索團隊工作,並會盡力提供幫助。 查詢和更新索引是兩種不同的用例。據推測,你想要查詢索引以響應用戶在Web應用程序中的輸入。 (也有可能你有一個SQL存儲過程,有一些複雜的邏輯需要全面的測試搜索,但這似乎不太可能)。

更新索引可以通過多種方式完成。如果您最多可以每隔5分鐘更新索引,請使用Azure Search SQL索引器爲您自動更新索引 - 有關如何執行此操作的詳細信息,請參見http://azure.microsoft.com/en-us/documentation/articles/search-howto-connecting-azure-sql-database-to-azure-search-using-indexers-2015-02-28/。該文章描述瞭如何使用REST API創建索引器,但我們現在也支持.NET SDK中的索引器。

OTOH,如果您需要硬實時更新,您可以在生成數據的同時更新搜索索引以插入/更新SQL數據庫。

讓我知道你是否有任何後續問題!

HTH, 尤金

+0

感謝您有用的答案!事實上,網絡上的用戶輸入將需要查詢索引。還有其他方法可以訪問數據庫,所以我正在考慮將所有索引查詢放入一個存儲過程中,然後可以從網絡和其他應用程序訪問這些存儲過程。這是一個現實/好用例,還是直接查詢索引而不涉及數據庫更好? – l33t

+1

我懷疑從Web應用程序直接查詢索引會更容易和更好。將該代碼放入sproc中意味着所有查詢都必須進行2次跳躍:一次是從Web應用到sproc,另一次是從sproc到Azure Search。此外,這會增加數據庫的負載,並可能會影響您使用數據庫的其他工作負載。調試/更改搜索代碼可能也會更復雜。 –