經過昨天的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,然后把官網代碼照着寫了一遍,然后可以可以成功運行了;來看下運行后的數據結果(插入數據的代碼示例);
至此,算是入門了,折騰了那么久,一定要寫篇博客記錄下,以免別人也遇到這種事情;