gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区

站長資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

ElasticSearch[v6.2] 在實際項目中的應(yīng)用

 摘要:本文所講述的內(nèi)容,為ElasticSearch(以下簡稱ES)全文搜索引擎在實際大數(shù)據(jù)項目的應(yīng)用;ES的底層是開源庫 Lucene。但是,你沒法直接用 Lucene,必須自己寫代碼去調(diào)用它的接口。ES 是 Lucene 的封裝,java開發(fā),提供了 REST API 的操作接口,開箱即用,是目前全文搜索的首選;

本文的使用項目為基于Spring Boot 的快速開發(fā)環(huán)境搭建的項目框架,使用Spring Cloud作為服務(wù)治理的框架;集成ES的過程中,考慮過使用Spring Data的方式集成,進行數(shù)據(jù)的對接,后面通過多方面的調(diào)研和學習討論,最終確定了bboss的集成方案,一個 高性能elasticsearch ORM開發(fā)庫使用介紹,在這里特別感謝bboss的作者大河和他的團隊提供的幫助;

一、ES基礎(chǔ)

網(wǎng)上關(guān)于ES的介紹已經(jīng)特別多,這里將不再進行詳細介紹,只是針對幾個重點進行說明;

  1、Index (索引)–可以理解為關(guān)系型數(shù)據(jù)庫中的 數(shù)據(jù)庫的概念

  一個索引就是含有某些相似特性的文檔的集合。例如,你可以有一個用戶數(shù)據(jù)的索引,一個產(chǎn)品目錄的索引,還有其他的有規(guī)則數(shù)據(jù)的索引。一個索引被一個名稱(必須都是小寫)唯一標識,并且這個名稱被用于索引通過文檔去執(zhí)行索引,搜索,更新和刪除操作。

  2、Type(類型)–可以理解為關(guān)系型數(shù)據(jù)庫中的 表的概念(6.2版本中一個index下只有一個Type)

  3、Document(文檔)–可以理解為關(guān)系型數(shù)據(jù)庫中表的ROW

  一個文檔是一個可被索引的數(shù)據(jù)的基礎(chǔ)單元。例如,你可以給一個單獨的用戶創(chuàng)建一個文檔,給單個產(chǎn)品創(chuàng)建一個文檔,以及其他的單獨的規(guī)則。這個文檔用JSON格式表現(xiàn),JSON是一種普遍的網(wǎng)絡(luò)數(shù)據(jù)交換格式。

  4、Field(字段)–相當于表中的COLUMN

  5、在一個關(guān)系型數(shù)據(jù)庫里面,schema定義了表、每個表的字段,還有表和字段之間的關(guān)系。 與之對應(yīng)的,在ES中:Mapping定義索引下的Type的字段處理規(guī)則,即索引如何建立、索引類型、是否保存原始索引JSON文檔、是否壓縮原始JSON文檔、是否需要分詞處理、如何進行分詞處理等。

   6、ELK是什么?

  ELK=elasticsearch+Logstash+kibana
  elasticsearch:后臺分布式存儲以及全文檢索
  logstash: 日志加工、“搬運工”
  kibana:數(shù)據(jù)可視化展示。 特別是在DSL的學習過程中,相當于數(shù)據(jù)庫的可視化工具,實時交互操作。
  ELK架構(gòu)為數(shù)據(jù)分布式存儲、可視化查詢和日志解析創(chuàng)建了一個功能強大的管理鏈。 三者相互配合,取長補短,共同完成分布式大數(shù)據(jù)處理工作。

  二、ES能解決什么樣的問題?

  實際項目開發(fā)實戰(zhàn)中,幾乎每個系統(tǒng)都會有一個搜索的功能,當搜索做到一定程度時,維護和擴展起來難度就會慢慢變大,所以很多公司都會把搜索單獨獨立出一個模塊,用ElasticSearch等來實現(xiàn)。近年ElasticSearch發(fā)展迅猛,已經(jīng)超越了其最初的純搜索引擎的角色,現(xiàn)在已經(jīng)增加了數(shù)據(jù)聚合分析(aggregation)和可視化的特性,如果你有數(shù)百萬的文檔需要通過關(guān)鍵詞進行定位時,ElasticSearch肯定是最佳選擇。當然,如果你的文檔是JSON的,你也可以把ElasticSearch當作一種“NoSQL數(shù)據(jù)庫”, 應(yīng)用ElasticSearch數(shù)據(jù)聚合分析(aggregation)的特性,針對數(shù)據(jù)進行多維度的分析。

  而在本文的項目中,輿情監(jiān)測部分,搜索功能將是該模塊的核心功能;包括條件檢索,中文分詞,全文搜索等功能,而BBOSS對于該部分功能的實現(xiàn),提供了極大的便利;

  三、ES環(huán)境搭建和在項目中的應(yīng)用

  1、ES集群搭建,關(guān)于ES集群的搭建,這里不再單獨介紹,推薦的博客特別多。但有一點要注意,就是不同版本的ES對于功能的支持會有一些區(qū)別,要注意;

  2、ES的查詢語法;項目集成BBOSS后,比較類似Mybatis框架,直接完成DSL語句的編寫放入XML,通過對應(yīng)的DAO方法調(diào)用即可,所以ES的查詢語法是ES學習的重點,也是ES進階的重點,不同的需求對于DSL的查詢復雜度不一,可以通過ES的中文官方網(wǎng)站進行閱讀學習,并在自身搭建的ES集群提供的kibana中進行操作,ES權(quán)威中文指南

  3、項目集成bboss

  第一步、maven引入包

<dependency>
    <groupId>com.bbossgroups.plugins</groupId>
    <artifactId>bboss-elasticsearch-rest</artifactId>
    <version>5.0.6.3</version>
</dependency>

  第二步、bboss elasticsearch配置

運行bboss es需要三個配置文件,放到資源目錄(resources)的conf目錄下即可:

conf/elasticsearch.xml        es客戶端配置文件

conf/httpclient.xml            es http連接池配置文件

conf/elasticsearch.properties  es參數(shù)配置文件,在上面的兩個xml文件中引用,所以我們只需要修改elasticsearch.properties即可。
  第三步、配置ES查詢DSL

在resources下創(chuàng)建配置文件estrace/xxx.xml,配置一個query dsl腳本,名稱為queryServiceByCondition,我們將在后面的ClientInterface 組件中通過queryServiceByCondition引用這個腳本,定義腳本內(nèi)容;

加載query dsl文件,并執(zhí)行查詢操作

  @Override
  public String searchInfo(JSONObject jsonObject) {
        Map<String, Object> params = formatParams(jsonObject);
        JSONObject result = new JSONObject();
        //創(chuàng)建加載配置文件的客戶端工具,用來檢索文檔,單實例多線程安全
        ClientInterface clientUtil = ElasticSearchHelper.getConfigRestClientUtil(“esmapper/opinion.xml”);
        ESDatas<OpinionInfo> esDatas = clientUtil.searchList(“act_yq_info_summary/_search”,//act_yq_info_summary為索引名稱,search為操作的action
                “searchOpinionInfo”,//esmapper/opinion.xml中定義的dsl語句
                params, OpinionInfo.class);
        result.put(“esDatas”, esDatas);
        return JSONObject.toJSONString(result);
    }

關(guān)于BBOSS語法的具體學習,可以移步到  高性能elasticsearch ORM開發(fā)庫使用介紹,或者入QQ群 166471282

  4、提供一個mapping設(shè)置和dsl的示例,僅供參考;

PUT /act_yq_info_summary/

  “settings”:{ 
      “number_of_shards”:6,
      “index.refresh_interval”: “5s”,
      “analysis” : {
          “analyzer” : {
                “ik” : {
                    “tokenizer” : “ik_max_word”
                }
            }
        }
  },
  “mappings”:{ 
      “articles”:{ 
        “dynamic_date_formats”:[ 
            “yyyy-MM-dd HH:mm:ss”,
            “yyyyMMdd”,
            “yyyy-MM-dd”
        ],
        “dynamic”:”false”,
        “properties”:{ 
            “infoUid”:{ 
              “type”:”text”
            },
            “compareId”:{ 
              “type”:”text”
            },
            “plats”:{ 
              “type”:”keyword”
            },
            “keyWords”:{ 
              “type”:”keyword”
            },
            “infoTitle”:{ 
              “type”:”text”,
              “store”:true,
              “analyzer” : “ik_max_word”
            },
            “infoDetail”:{ 
              “type”:”text”,
              “store”:true,
              “analyzer” : “ik_max_word”
            },
            “infoUrl”:{ 
              “type”:”text”
            },
            “pubTime”:{ 
              “type”:”date”,
              “format”:”yyyy-MM-dd HH:mm:ss”
            },
            “platsType”:{ 
              “type”:”keyword”
            },
            “mlEmotion”:{ 
              “type”:”keyword”
            },
            “userEmotion”:{ 
              “type”:”keyword”
            }
        }
      }
  }
}

查詢的DSL

GET act_yq_info_summary/_search
{
    “query”: {
        “bool”: {
            “must”: [{
                    “bool”: {
                        “should”: [{
                                “match”: {
                                    “infoDetail”: “喬軍”
                                }
                            },
                            {
                                “match”: {
                                    “infoTitle”: “喬軍”
                                }
                            }
                        ]
                    }
                },
                {
                    “terms”: {
                        “userEmotion”: [“pos”, “neg”, “neu”]
                    }
                }
            ],
            “filter”: {
                “bool”: {
                    “must”: [{
                            “terms”: {
                                “plats”: [“jingdong”, “toutiao_news”, “toutiao_ans”, “sina_blog”, “sina_com”, “bd_news”, “bd_konws”, “bd_tieba”, “zhihu_ques”, “zhihu_ans”]
                            }
                        },
                        {
                            “range”: {
                                “pubTime”: {
                                    “gte”: “2016-05-01 00:00:00”,
                                    “lte”: “2018-05-07 23:59:59”
                                }
                            }
                        },
                        {
                            “terms”: {
                                “keyWords”: [“藍月亮湖南衛(wèi)視中秋晚會”, “藍月亮央視中秋晚會”, “藍月亮旋風孝子”]
                            }
                        }
                    ]
                }
            }
        }
    },
    “highlight”: {
        “fields”: [{
                “infoTitle”: {}
            },
            {
                “infoDetail”: {}
            }
        ]
    },
    “from”: 0,
    “size”: 10,
    “sort”: [{
            “_score”: {
                “order”: “desc”
            }
        },
        {
            “pubTime”: {
                “order”: “desc”
            }
        }
    ]
}

5、關(guān)于分詞器,這里還是推薦IK分詞吧,IK分詞可以設(shè)置 ik_smart  或者  ik_max_word,這里不做詳解,推薦使用ik_max_word

寫在最后的話,ES是一個非常強大的搜索引擎,要入門不是很難,但是要精通查詢,查詢優(yōu)化,最大程度的搜索最想要的結(jié)果是有很多優(yōu)化的余地的,包括評分機制,包括新版本提供的聚合功能等,只能說,加油學習吧

贊(0)
分享到: 更多 (0)
?
網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区
国产成人无码一二三区视频| 午夜影院免费版| 做爰高潮hd色即是空| 免费看日本毛片| www.色.com| 国产一级片自拍| www黄色av| 毛片在线播放视频| 国产成人生活片| 波多野结衣免费观看| www.激情小说.com| www.国产区| 久久综合九色综合88i| 日本中文字幕一级片| av在线网站免费观看| www亚洲成人| wwww.国产| 免费黄色一级网站| 日韩手机在线观看视频| 欧美女人性生活视频| 99热在线这里只有精品| 野外做受又硬又粗又大视频√| 国产精品久久久久久久99| 韩国视频一区二区三区| 亚州精品一二三区| 黑森林精品导航| 永久免费的av网站| www,av在线| 日韩一级特黄毛片| 日本人妻伦在线中文字幕| 欧美日韩午夜爽爽| 无码粉嫩虎白一线天在线观看| 免费看欧美黑人毛片| 国产尤物av一区二区三区| 国产在线拍揄自揄拍无码| 狠狠干视频网站| 国产伦精品一区二区三区四区视频_| 国产一区二区视频播放| 国产淫片免费看| 精品亚洲一区二区三区四区| 91丝袜超薄交口足| 亚洲色婷婷久久精品av蜜桃| 日韩视频在线视频| 欧美成人黑人猛交| gai在线观看免费高清| 日韩中文在线字幕| 精品久久一二三| 日本人69视频| 福利在线一区二区| 国产av人人夜夜澡人人爽| 婷婷激情综合五月天| 欧美午夜性视频| 亚洲欧美视频二区| 久草视频国产在线| 嫩草视频免费在线观看| 日韩精品一区二区免费| 亚州精品一二三区| 精品国产av无码一区二区三区| 亚洲精品一二三四五区| 日韩第一页在线观看| 国产男女激情视频| 特级西西444| 亚洲免费av一区二区三区| 黄色一级视频播放| 狠狠热免费视频| 久久亚洲a v| 精品国产鲁一鲁一区二区三区| 欧美 日韩 国产在线观看| gai在线观看免费高清| 日韩a在线播放| 激情五月六月婷婷| 亚洲在线观看网站| 亚洲欧洲日本精品| 国产福利一区视频| 国产黄页在线观看| 国产真人做爰毛片视频直播| 男女h黄动漫啪啪无遮挡软件| 玩弄japan白嫩少妇hd| 欧美变态另类刺激| 国产精品又粗又长| www.欧美黄色| 日韩精品手机在线观看| 强伦女教师2:伦理在线观看| 制服丝袜综合网| 日韩av片网站| av污在线观看| 欧美黑人又粗又大又爽免费| 国产男女无遮挡| 日韩中文字幕二区| 可以在线看的黄色网址| 国产91在线视频观看| 九一国产精品视频| 无码aⅴ精品一区二区三区浪潮| 久久久久久人妻一区二区三区| 久久久久久久香蕉| 99国产精品白浆在线观看免费| 最近免费观看高清韩国日本大全| 欧洲美女亚洲激情| 看一级黄色录像| 日韩成人三级视频| 黄色成人在线看| 成年人黄色片视频| 成年人在线看片| 高清av免费看| 中文字幕乱码免费| 国产一级爱c视频| 成人亚洲视频在线观看| 蜜臀av免费观看| 亚洲国产午夜精品| 好吊色视频988gao在线观看| 99在线免费视频观看| 免费欧美一级视频| 中文字幕12页| 国产69精品久久久久999小说| 可以在线看的黄色网址| www.成年人| 日韩精品在线视频免费观看| 国语对白做受xxxxx在线中国| 三上悠亚在线一区| 青青草国产免费| www.超碰97.com| 激情五月婷婷六月| 亚洲这里只有精品| 国产精品久久久久9999爆乳| 午夜免费高清视频| 国产xxxx振车| 爱情岛论坛亚洲首页入口章节| 激情视频小说图片| 日韩av在线综合| 国产一区 在线播放| 美女网站视频黄色| 国产免费黄色小视频| 中文字幕12页| 最近免费中文字幕中文高清百度| 热这里只有精品| 黄色三级视频在线| 欧美视频免费看欧美视频| 一级日本黄色片| 国内自拍视频网| 免费观看美女裸体网站| 三上悠亚免费在线观看| 男女污污的视频| 国内自拍在线观看| 黄色成人在线免费观看| 波多野结衣在线免费观看| 国产精品免费成人| 免费在线a视频| 免费在线黄网站| 久久福利一区二区| 免费看啪啪网站| 爽爽爽在线观看| 欧美三级午夜理伦三级富婆| 女性女同性aⅴ免费观女性恋| 少妇久久久久久被弄到高潮| 亚洲黄色av片| 日本www.色| 国产精品igao| 污污动漫在线观看| 少妇黄色一级片| 黄色国产小视频| 亚洲中文字幕久久精品无码喷水 | 亚洲污视频在线观看| 日本成年人网址| 人妻熟女一二三区夜夜爱| 国产3p露脸普通话对白| 日本五级黄色片| 国产一二三在线视频| 777av视频| 大肉大捧一进一出好爽视频| 337p粉嫩大胆噜噜噜鲁| 99在线免费视频观看| 91成人综合网| 黄色免费视频大全| 农村妇女精品一二区| 北条麻妃av高潮尖叫在线观看| 亚洲天堂av线| 亚洲综合伊人久久| 丁香色欲久久久久久综合网| 六月婷婷在线视频| 日本男人操女人| 色播五月综合网| 福利在线小视频| 欧美激情视频免费看| 日本熟妇人妻中出| 午夜一级免费视频| 97视频在线免费| 污污网站免费看| 欧美一级爱爱视频| 日日碰狠狠丁香久燥| 亚洲欧美日本一区二区三区| 成人在线观看www| 国产淫片免费看| 色18美女社区| a级黄色一级片| 国产精品久久久久久9999| 国产911在线观看| 在线视频日韩一区 | 久久久久久久久网| 国产精品丝袜久久久久久消防器材| 日本久久久久久久久久久久|