[踩過的坑]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文件,一定要注意版本號,這個就是后面的大坑,自己好不容易爬出來

 

然后,就開始代碼編寫了,怎么寫?難道寫個“hello,word”?NO,NO,剛接觸,沒辦法,只有去抄了,去哪里抄,當然是官網了,官網示例:https://www.elastic.co/guide/en/elasticsearch/client/net-api/5.x/elasticsearch-net-getting-started.html

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

 

為了操作方便,先弄一個Winfrom 程序,拉一個窗體,再來個按鈕,觸發個Click事件,然后,在添加引用,把剛剛下載的兩個Dll文件添加到項目中;好了,一切准備就緒,開始上菜了!

 

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

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

 

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

 

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

 

 

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

 

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

 

然后,把官網示例切換到6.X,然后把官網代碼照着寫了一遍,然后可以可以成功運行了;來看下運行后的數據結果(插入數據的代碼示例);

 

 

 

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM