集團(tuán)門戶網(wǎng)站建設(shè)策劃營業(yè)推廣是一種什么樣的促銷方式
一、初始elasticsearch
- 什么是elasticsearch?
一個開源的分布式搜索引擎,可以用來時限搜素、日志統(tǒng)計、分析、系統(tǒng)監(jiān)控等功能。 - 什么是elasitc stack(ELK)?
是以elasticsearch為核心的技術(shù)棧,包括 beats、Logstash、kibana、slasticsearch。 - 什么是Lucene?
是Apache的開源搜索引擎類庫,提供了索索引擎的核心API。
正向索引和倒排索引
什么是文檔和詞條?
每一條數(shù)據(jù)就是一個文檔
對文檔中的內(nèi)容分詞,得到的詞語就是詞條。
什么是正向索引?
基于文檔id創(chuàng)建索引。查詢詞條時必須先找到文檔,然后判斷是否包含詞條。
什么是倒排索引?
對文檔內(nèi)容分詞,對詞條創(chuàng)建索引,并記錄詞條所在文檔的信息。查詢時先根據(jù)詞條查詢到文檔id,而后獲取到文檔。
相關(guān)概念
文檔
elasticsearch是面向文檔存儲的,可以是數(shù)據(jù)庫中的一條商品數(shù)據(jù),一個訂單信息。
文檔數(shù)據(jù)會被序列化為json格式后存儲在elasticsearch中。
索引(Index)
索引: 相同類型文檔的集合。
映射(mapping):索引中文檔的字段約束信息,類似表的結(jié)構(gòu)約束、
與mysql的區(qū)別
Mysql: 擅長事務(wù)類型操作,可以確保數(shù)據(jù)的安全和一致性。
Elasticsearch: 擅長海量數(shù)據(jù)的搜索、分析、計算。
安裝elasticsearch、kibana
分詞器的作用
創(chuàng)建倒排索引時對文檔分詞
用戶搜索時,對輸入的內(nèi)容分詞。
IK分詞器有集中模式
ik_smart: 智能切分,粗粒度
ik_max_word: 最細(xì)切分,細(xì)粒度
IK 分詞器如何拓展詞條?如何停用詞條?
利用config目錄的IkAnalyzer.cfg.xml文件添加拓展詞典和停用詞典。
在詞典中添加拓展詞條或者停用詞條。
文檔操作有哪些?
創(chuàng)建文檔:POST/ 索引庫名 /_doc/ 文檔id {json文檔}
查詢文檔 : GET/索引庫名/ _doc /文檔id
刪除文檔 : DELETE / 索引庫名 / _doc / 文檔id
修改文檔:
- 全量修改: PUT / 索引庫名 / _doc /文檔id {json文檔}
- 增量修改: POST/索引庫名 /_update/ 文檔id {“doc”:{字段}}
RestClient 操作索引庫
- 初始化ResthighLevelClient
- 創(chuàng)建XxxIndexRequest。XXX是 create、get、delete
- 準(zhǔn)備DSL (create時需要)
- 發(fā)送請求。調(diào)用ResthighlevelClient # indices().xxx()方法,xxx是create、exists、delete。
文檔化操作
- 初始化ResthighLevelClient
- 創(chuàng)建XxxRequest。XXX是Index、get、undate、delete。
- 準(zhǔn)備呢參數(shù)(Index和Update時需要)。
- 發(fā)送請求。調(diào)用RestHighLevelClient#.xxx()方法,xxx是index、get、update、delete。
- 解析結(jié)果(get時需要)。
查詢DSL的基本語法
GET /索引庫名/_search
{“query”:{“查詢類型”:{“FIELD”:“TEXT”}}}
GET /索引庫名/_search
{"query":{"查詢類型":{"FIELD":"TEXT"}}}
match 和multi_match的區(qū)別
- match:根據(jù)一個字段查詢
- multi_match:根據(jù)多個字段查詢,參與查詢字段越多,查詢性能越差。