文章目錄
- 1.什么是Elasticsearch?
- 2.什么是elastic stack(ELK)?
- 3.什么是Lucene?
- 4.什么是文檔(document)?
- 5.什么是詞條(term)?
- 6.什么是正向索引?
- 7.什么是倒排索引?
- 8.ES中的索引(index)
- 9.映射(Mapping)
- 10.DSL
- 11.elastcisearch與mysql的關系(讀寫分離)
- 12.Elasticsearch目錄介紹
- 13.ES默認的兩個端口
- 14.如何解決ES跨域問題
- 15.Kibana默認端口和啟動文件
- 16.Kibana漢化
- 17.什么是IK分詞器?
- 18.IK分詞器的兩種分詞算法
- 19.IK分詞器擴展詞條,停用詞條
- 20.ES的默認分詞器
基于Elasticsearch-7.15.1,需要安裝jdk8 或者jdk11支持
1.什么是Elasticsearch?
一個開源的分布式搜索引擎,通過Restful方式進行交互的近實時搜索平臺框架,可以用來實現搜索、日志統計、分析、系統監控等功能,
2.什么是elastic stack(ELK)?
是以elasticsearch為核心的技術棧,包括(beats,(L)Logstash)數據抓取,((K)kibana)數據可視化,((E)elasticsearch)存儲、計算、搜索數據
3.什么是Lucene?
java語言的搜索引擎類庫,提供了搜索引擎的核心API,elasticsearch就是基于Lucene開發的
4.什么是文檔(document)?
每一條數據就是文檔,相當于mysql中的一條記錄,但是ES中的文檔是json格式的,文檔中的字段成為Field,相當于mysql中的列Column
5.什么是詞條(term)?
對文檔中的內容進行分詞,得到的詞語就是詞條
6.什么是正向索引?
基于文檔id創建索引,查詢詞條的時候先找到文檔,后判斷文檔是否包含詞條
7.什么是倒排索引?
對文檔的內容進行分詞,對詞條創建索引,查詢時根據詞條查詢文檔id,而后獲得文檔
8.ES中的索引(index)
相同類型的文檔(json格式)集合,相當于mysql中的表(相同數據的集合)
9.映射(Mapping)
ES索引中文檔的約束
10.DSL
DSL是elasticsearch提供的json風格的請求語句,就是操作ES,實現增刪改查,相當于mysql中的sql語句
11.elastcisearch與mysql的關系(讀寫分離)
數據庫負責事務類型的操作,可以確保數據的原子性、一致性、隔離性、持久性
擅長海量數據的搜索、分析、計算(針對業務量大、搜索需求比較復雜)
12.Elasticsearch目錄介紹
bin/elasticsearch.bat:啟動文件
config/log4j2:日志配置文件
config/jvm.options:虛擬機相關的配置
config/elasticsearch.yml:ES的配置文件!默認端口!跨域!
lib:相關jar包
logs:日志目錄
modules:功能模塊目錄
data:數據目錄
plugins:插件目錄
13.ES默認的兩個端口
9200:客戶端使用
9300:集群內部通信
14.如何解決ES跨域問題
找到config/elasticsearch.yml文件
http.cors.enabled: true
http.cors.allow-origin: “*”# 也可以指定具體的允許來源
15.Kibana默認端口和啟動文件
5601
bin/kibana.bat
默認會指向9200從而操作ES
16.Kibana漢化
x-pack/plugins/translations/translations/zh-CN.json
修改:config/kibana.yml --> i18n.locale: “zh-CN”
17.什么是IK分詞器?
把一個一個中文劃分成一個一個的關鍵字,如果使用中文,建議使用IK分詞器,下載ik分詞器之后,在ES的plugins目錄解壓放入ik目錄,重啟即可
在bin目錄下打開命令行,執行elasticsearch-plugin list可以查看加載進來的插件
18.IK分詞器的兩種分詞算法
ik_smart:最少切分,粗粒度
ik_max_word:最細粒度切分
19.IK分詞器擴展詞條,停用詞條
當詞典沒有自己需要的詞的時候就可以自己添加詞語,例如"白嫖"
進入IK分詞器的config/IKAnalyzer.cfg.xml文件更改配置
my.dic
mystop.dic
my.dic、mystop.dic就是自己在config目錄下新建的詞條文件
20.ES的默認分詞器
standard分詞器:默認的分詞規則對中文處理并不友好