亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

.netElasticsearch學習入門筆記

2019-11-14 13:31:27
字體:
來源:轉載
供稿:網友

一. es安裝相關
1.elasticsearch安裝
  運行http://localhost:9200/
2.head插件
3.bigdesk插件安裝
(安裝細節百度:windows elasticsearch 安裝,有詳細內容)

二. es插件相關
http://www.searchtech.PRo/elasticsearch-plugins (es 插件大全)
https://github.com/medcl/elasticsearch-analysis-ik (ik 項目)
https://github.com/lmenezes/elasticsearch-kopf (ES的插件  監控 節點狀態 , 也可以調試你的ES查詢)
https://github.com/medcl/elasticsearch-rtf/tree/master (2.1.1 + 1.6ik  還有拼音  和其他分詞器 集成好了)
https://github.com/lmenezes/elasticsearch-kopf (類似head的插件)
https://www.elastic.co/downloads/marvel (監控ES健康狀態)
konf插件 (據說能看集群負載)

三.es C# 客戶端示例

1. 包下載elasticsearch.net,nest 組件。
   nest組件會依賴下載elasticsearch組件。
   使用文檔:http://nest.azurewebsites.net/
   備注:.net 使用es的相對少一些,es版本更新也很快,很多使用也都是靠自己揣摩。多交流,多分享。
2. 創建連接客戶端
     public ElasticClient GetClient()
        {
            var node = new Uri("http://192.168.17.54:9200");

            var settings = new ConnectionSettings(
                node,
                defaultIndex: "my-application"

            );
            return new ElasticClient(settings);
        }
3. 創建索引模型(索引結構)
[ElasticType(IdProperty = "Id", Name = "Person")]
        public class Person
        {
           [ElasticProperty(Name = "Id", Type = FieldType.String, Index = FieldIndexOption.NotAnalyzed)]
            public string Id { get; set; }
            public string Firstname { get; set; }
            public string Lastname { get; set; }
            public string[] Chains { get; set; }
           [ElasticProperty(Name = "content", Type = FieldType.String, Index = FieldIndexOption.Analyzed, Analyzer = "ik_max_Word")]
            public string Content { get; set; }
        }
     備注:其他人提供的model示例,更詳細些,可下載附件。
4. 索引內容(創建索引)
  private void btnIndex_Click(object sender, EventArgs e)
        {
            //var client = new ElasticsearchClient();
            ////index a document under /myindex/mytype/1
            //var indexResponse = client.Index("myindex", "mytype", "1", new { Hello = "World" });
            var client2 = GetClient();

            //client2.CreateIndex("test");
            //client2.Map<Person>(c => c.MapFromAttributes());

            IEnumerable<Person> persons = new List<Person>
            {
                new Person()
                {
                    Id = "4",
                    Firstname = "aaa",//Boterhuis-040
                    Lastname = "Gusto-040",
                    Chains = new string[]{ "a","b","c" },
                },
                new Person()
                {
                    Id = "5",
                    Firstname = "sales@historichousehotels.com",
                    Lastname = "t Boterhuis 1",
                    Chains = new string[]{ "a","b","c" },
                },
                new Person()
                {
                    Id = "6",
                    Firstname = "Aberdeen #110",
                    Lastname = "sales@historichousehotels.com",
                    Chains = new string[]{ "a","b","c" },
                },
                new Person()
                {
                    Id = "7",
                    Firstname = "Aberdeen #110",
                    Lastname = "t Boterhuis 2",
                    Chains = new string[]{ "a","b","c" },
                },
                 new Person()
                {
                    Id = "8",
                    Firstname = "Aberdeen #110",
                    Lastname = "t Boterhuis 2",
                    Chains = new string[]{ "a","b","c" },
                },
            };
            //foreach(var p in persons)
            client2.IndexMany<Person>(persons,"test");
        }
5. 簡單搜索示例
  var client = GetClient();
            var rs = client.Search<Person>(s => s.Index("test").QueryString(this.textBox1.Text));
            this.richTextBox1.Text = JsonConvert.SerializeObject(rs.Documents);
6. 索引更新
 private void btnUpdate_Click(object sender, EventArgs e)
        {
            var client2 = GetClient();

            client2.Update<Person, object>(u => u
             .Index("test")
            .Id(4)
            .Doc(new { Id="4", Firstname = "United States" })
            .RetryOnConflict(3)
            .Refresh()
           );

            //var u1 =  new Person()
            //    {
            //        Id = "4",
            //        Firstname = "Boterhuis-040",
            //        Lastname = "Gusto-040",
            //        Chains = new string[]{ "a","b","c" },
            //    };
            //var u2 = new Person()
            //    {
            //        Id = "4",
            //        Firstname = "United States",
            //        Lastname = "Gusto-040",
            //        Chains = new string[] { "a", "b", "c" },
            //    };
            //client2.Update<Person,Person>(u1,u2).
        }

7. 索引刪除
 private void btnDelete_Click(object sender, EventArgs e)
        {
            var client2 = GetClient();
            client2.DeleteIndex("test");
            client2.DeleteIndex("my-application");
        }
8. 總結
以上示例代碼,簡單的應用已經足夠用。其他的就是高亮和分組。可以看文檔。

四. es 集群
 es 默認是一個集群,相對solr云來說配置更簡單,搭建更方便些。但是更多還是要根據業務進行自己的集群設計還是好費很多時間,很多精力。(上手容易,用好難)

五. es 與solr 對比
個人目前了解的:
原來solr資料比較多,現在貌似es的資料更多一點。solr是官方英文pdf,es也是英文的。
原來solr還有中文書籍,現在貌似沒有了。es 目前還有幾本書籍,但是講的es版本略有老舊。
solr上手相對es略微難些。
(n年前,我用的是solr,那時候還沒有solrcloud;es還沒有出來,那時候solr資料反而多。個人也實現了自己的solr集群方案。其他的功能上的對比,還是百度,不重復。)

六. 如果es客戶端調試請求
建議下載HTTPAnalyzer之類的tcp攔截工具。這樣可以攔截驗證sdk出來的請求連接,對比資料和書籍看下哪些參數寫錯了,對調試很有幫助。

七. es 附錄
es術語介紹:
cluster:

代表一個集群,集群中有多個節點,其中有一個為主節點。這個主節點是可以通過選舉產生的。注意,主從節點是對于集群內部來說的。es的一個概念就是去中心化,字面上理解就是無中心節點,這是對于集群外部來說的,因為從外部來看es集群,在邏輯上是個整體,你與任何一個節點的通信和與整個es集群通信是等價的。
shards

代表索引分片。es可以把一個完整的索引分成多個分片,這樣的好處是可以把一個大的索引拆分成多個,分布到不同的節點上。構成分布式搜索。分片的數量只能在索引創建前指定,并且索引創建后不能更改。
replicas

代表索引副本,es可以設置多個索引的副本。副本的作用,一是提高系統的容錯性,當某個節點的某個分片損壞或丟失時可以從副本中恢復,二是提高es的查詢效率,es會自動對搜索請求進行負載均衡。
recovery

代表數據恢復或叫數據重新分布,es在有節點加入或退出時會根據機器的負載對索引分片進行重新分配,掛掉的節點重新啟動時也會進行數據恢復。
river

代表es的一個數據源,也是其他存儲方式(如:數據庫)同步數據到es的一個方法。它是以插件方式存在的一個es服務,通過讀取river中的數據并把它索引到es中,官方的river有couchDB的,RabbitMQ的,Twitter的,Wikipedia的。
gateway

代表es索引快照的存儲方式。es默認是先把索引存放到內存中,當內存滿了時再持久化到本地硬盤。gateway對索引快照進行存儲,當這個es集群關閉再重新啟動時,就會從gateway中讀取索引備份數據。es支持多種類型的gateway,有本地文件系統(默認),分布式文件系統,Hadoop的HDFS和amazon的s3云存儲服務。
discovery.zen

代表es的自動發現節點機制。es是一個基于p2p的系統,它先通過廣播尋找存在的節點,再通過多播協議來進行節點之間的通信,同時也支持點對點的交互。
Transport

代表es內部節點或集群與客戶端的交互方式。默認內部是使用tcp協議進行交互,同時它支持http協議(json格式)、thrift、servlet、memcached、zeroMQ等的傳輸協議(通過插件方式集成)。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美激情喷水视频| 综合久久五月天| 庆余年2免费日韩剧观看大牛| 久久久国产精品视频| 久久夜精品香蕉| 亚洲第一区在线观看| 色多多国产成人永久免费网站| 日本韩国在线不卡| 亚洲一区中文字幕在线观看| 欧美夫妻性生活xx| 大胆人体色综合| 一区二区三区回区在观看免费视频| 成人国产精品久久久| 欧美激情欧美激情在线五月| 成人国产精品久久久久久亚洲| 激情av一区二区| 亚洲va电影大全| 日本一区二区不卡| 国产精品露脸自拍| 亚洲精品mp4| 亚洲欧洲在线观看| 国产ts一区二区| 国产成人精品国内自产拍免费看| 国产在线不卡精品| 亚洲精品在线不卡| 久久国产精品久久久久久| 欧美性开放视频| 另类图片亚洲另类| 亚洲精品自拍第一页| 欧美日韩精品二区| 国产精品第一页在线| 在线电影av不卡网址| 精品国产一区av| 亚洲一区二区久久| 亚洲欧美中文日韩在线| 国产精品丝袜一区二区三区| 国产视频久久久| 亚洲伊人第一页| 91最新在线免费观看| 欧美性感美女h网站在线观看免费| 久久精品国产一区| 久久中文精品视频| 精品自在线视频| 欧美亚洲另类制服自拍| 亚洲性av在线| 国产91精品不卡视频| 亚洲精品电影网在线观看| 正在播放亚洲1区| 国模视频一区二区三区| 亚洲男人第一av网站| 欧美精品手机在线| 久久久久久久久久久亚洲| 欧美成人免费全部| 色噜噜亚洲精品中文字幕| 欧美日韩亚洲视频| 欧美日韩在线观看视频| 成人xxxx视频| 国产91精品久久久久| 欧美成人午夜激情| 自拍亚洲一区欧美另类| 日韩性xxxx爱| 国产精品综合久久久| 亚洲精品视频二区| 亚洲综合第一页| 欧美精品videossex88| 亚洲第一二三四五区| 欧美日韩第一页| 91在线精品播放| 亚洲wwwav| 久久久久久久久久久91| 95av在线视频| 蜜臀久久99精品久久久无需会员| 北条麻妃一区二区三区中文字幕| 午夜精品一区二区三区在线视频| 欧美午夜片在线免费观看| 国产精品黄页免费高清在线观看| 国产精品第100页| 日韩激情av在线播放| 国内精品久久久久久久久| 国产精品极品美女在线观看免费| 欧美性猛交xxxx| 亚洲va久久久噜噜噜| 亚洲精品久久7777777| 亚洲国产日韩欧美在线图片| 日韩av片电影专区| 久久久免费av| 7m精品福利视频导航| 91精品视频专区| 亚洲精品视频在线观看视频| 日韩精品小视频| 亚洲欧美在线免费| 国产98色在线| 日韩欧美高清视频| 欧美亚洲国产视频小说| 色天天综合狠狠色| 成人免费淫片视频软件| 午夜精品蜜臀一区二区三区免费| 欧美视频专区一二在线观看| 亚洲激情电影中文字幕| 久久影视电视剧免费网站清宫辞电视| 欧美日韩成人在线播放| 国产综合在线视频| 91精品国产高清久久久久久| 亚洲精品久久久久久久久| 日韩av免费网站| 一道本无吗dⅴd在线播放一区| 91国产精品视频在线| 欧美激情精品久久久久| 性色av一区二区三区在线观看| 91国产高清在线| 久久夜色撩人精品| 色妞在线综合亚洲欧美| 国产小视频91| 久久人91精品久久久久久不卡| 国产亚洲精品久久久久动| 91精品国产综合久久久久久蜜臀| 国产精品网站入口| 不卡在线观看电视剧完整版| 亚洲人成电影网站色xx| 国产日韩欧美夫妻视频在线观看| 欧美黑人狂野猛交老妇| 欧美视频国产精品| 亚洲xxxx在线| 亚洲乱亚洲乱妇无码| 国产精品三级久久久久久电影| 成人午夜黄色影院| 亚洲网站视频福利| 欧美视频中文字幕在线| 一本久久综合亚洲鲁鲁| 国产va免费精品高清在线| 亚洲成人999| 久热爱精品视频线路一| 97人人做人人爱| 国产成人aa精品一区在线播放| 国产精品91久久久| 国产成人激情小视频| 超碰精品一区二区三区乱码| 国产精品免费网站| 国内外成人免费激情在线视频网站| 97香蕉超级碰碰久久免费的优势| 久久伊人精品视频| 91精品视频一区| 国产91精品久久久| 国产精品成人免费视频| 精品高清美女精品国产区| 国产精品人成电影| 国产精品久久精品| 国产成人+综合亚洲+天堂| 欧美精品videossex88| 亚洲国产97在线精品一区| 亚洲美女又黄又爽在线观看| 国产一区二区日韩精品欧美精品| 欧美亚洲另类在线| 欧美国产日本高清在线| 成人亚洲激情网| 国产精品白嫩初高中害羞小美女| 欧美大片免费观看在线观看网站推荐| 国产乱人伦真实精品视频| 精品成人69xx.xyz| 国产美女精品视频| 欧美性猛交xxxx黑人| xvideos国产精品| 亚洲性69xxxbbb| 欧美日韩中文字幕综合视频|