1. 程式人生 > >Elasticsearch.Net 官網示例的坑

Elasticsearch.Net 官網示例的坑

  經過昨天的ElasticSearch 安裝,服務以及可以啟動了,接下來就可以開發了,找到了官網提供的API以及示例,Es 官方提供的.net 客戶端有兩個版本一個低階版本: 【Elasticsearch.Net.dll】這個dll檔案官方解釋無依賴關係的客戶端,對於您如何構建和表示您的請求和相應沒有任何意見;它足夠抽象,因此所有的ElasticSearch API端點都表示為方法,不會妨礙你構建json、reque、response 物件方式,它還帶有內建的,可配置、可覆蓋的叢集故障轉移、重試機制。

  另一個高階版本: 【Nest.dll】 是一個高階客戶端、具有對映所有請求和響應物件的優勢,附帶強型別查詢DSL,並利用特定的.Net功能,如協變結果和POCO的自動對映;Nest內部包含了Elastic.net 版本;

   

然後兩個DLL檔案的安裝命令如下:

  安裝ElasticSearch.net.dll命令:Install-Package Elasticsearch.Net

  安裝nest.dll命令:Install-Package NEST

命令執行之後,vs 會下載最新版本的dall檔案,一定要注意版本號,這個就是後面的大坑,自己好不容易爬出來

,在抄的過程中,一定要理解並加以思考,在實際專案裡面靈活運用。

為了操作方便,先弄一個Winfrom 程式,拉一個窗體,再來個按鈕,觸發個Click事件,然後,在新增引用,把剛剛下載的兩個Dll檔案新增到專案中;好了,一切準備就緒,開始上菜了!

程式碼就不貼了,都是官網示例中的程式碼;

然後,程式就還沒有執行,就報錯了,這心情,我擦,這可是剛起步,這可是完全按照官網示例去寫的,竟然報錯!!!

 

錯誤提示:people 無法轉換為 “Elasticsearch.Net.IndexRequestParameters ”

 

然後就各種途徑找解決方案,中午吃飯的時候還在想,這官網真坑,案例都是錯的,最後,在瀏覽官網的時候注意到一個東西,就是選單選項。.NET API 版本號

 

心想,會不會跟版本號有關係,反正找不到解決方法,只有試一試了,然後又去看了下,下載的dll檔案;

 

這下,肯定了我的想法,下載的dll版本是6.4.0 的,看的官網示例是5.X 的;

然後,把官網示例切換到6.X,然後把官網程式碼照著寫了一遍,然後可以可以成功運行了;來看下執行後的資料結果(插入資料的程式碼示例);

 

至此,算是入門了,折騰了那麼久,一定要寫篇部落格記錄下,以免別人也遇到這種事情;