建立第一個自已的搜尋引擊–Azure Search Service - V3

Update 20160216 Azure Search 相關的連結都重新整併到 Github 去了,而且內容已經有改版了雖然變化不大但請自行對照

https://github.com/Azure/azure-content/blob/master/articles/search/search-get-started-dotnet.md

 

 

建立自已的搜尋引擊說真的有時候並不是那麼簡單,而且搜尋、分類、排序、建議等等的相關機制,光是每一種功能,對於過多的搜尋可能都會影響到現有系統的效能。

image

這個畫面是依照「使用 Azure 搜尋建立您的第一個搜尋解決方案」ASP.NET MVC 去呼叫 Azure Search 服務的範例程式調整的

http://azure.microsoft.com/zh-tw/documentation/articles/search-create-first-solution/

https://github.com/Azure/azure-content/blob/master/articles/search/search-get-started-dotnet.md

Update 20160216 Azure Search 相關的連結都重新整併到 Github 去了,而且內容已經有改版了雖然變化不大但請自行對照

 

如同畫面上看到的,我手上有所有使用者在手機上的針對每一種飲料的投票資料。我只做了兩件事情

一、整理我需要搜尋的 Index View ( 簡單來說就是 select 出我想要的資料 )

二、設定 Index 欄位 和 屬性  ( 讓 Azure Search 知道欄位搜尋的規則 )

三、將第一點的資料 和 第二點的欄位對應起來組成 JSON 字串送回到 Azure Search 裡

 

詳細的過程這邊就不說了,因為上面的連結文章也寫得相當詳細 微笑 

image

都完成後就可以看到這個 Index 裡面有 78 筆資料,而每一個欄位的分類、排序、篩選等等的機制。

基本上看到這個就代表 Azure Search 已經可以提供搜尋的功能。

 

 

若是要拿上面的範例修改的話,有一個地方要特別注意

image

不過像我這種手賤就直接拿來改的話 ( 記住這是錯誤的範例 )

image

Response status code does not indicate success: 400 (Bad Request).

會出現這個鬼問題,明明 Index 建立都正常。但是將資料丟進去就會出現 400 錯誤

 

image

經過反覆不死心的確認後…  ( 比對原本的程式 和 資料 )

 

image

要注意的地方就是第一個字母一定要「小寫」

image

這樣子就好了

image

希望大家就不要再遇到跟我一樣的問題 ( 遠目 )

 

而這個程式通常都會是在資料有異動後,自動跑這段程式然後將資料同步到 Azure Search 裡面就可以了 微笑 跟你的 SQL Server 完全沒有任何關聯

 

 

 

其他參考資料

使用 Azure 搜尋建立地理空間搜尋應用程式

http://azure.microsoft.com/zh-tw/documentation/articles/search-create-geospatial/

 

 

20141219 補充

昨天齊哥說看不懂這次寫的東西,因為我都整個亂寫 XD  想想還是再整理一下好了