1.初識elasticsearch
elasticsearch是一款非常強大的開源搜尋引擎,可以幫助我們從海量資料中快速找到需要的内容。
elasticsearch結合kibana、Logstash、Beats,也就是elastic stack(ELK)。被廣泛應用在日志資料分析、實時監控等領域。
其中,elasticsearch是elastic stack的核心,負責存儲、搜尋、分析資料。elasticsearch是基于Lucene開發的,而Lucene是Apache的開源搜尋引擎類庫,提供了搜尋引擎的核心API。
2.正向索引和反向索引
傳統的資料庫(如Mysql)采用的是正向索引,即資料庫是基于資料的id建立的索引,在查詢詞條時就必須先找到每一條資料,判斷其中是否包含對應的詞條。資料庫一般負責事務類型操作,可以確定資料的安全和一緻性。
elasticsearch采用的是反向索引,即索引庫是先對文檔内容(資料)進行分詞,對分出的詞條建立索引(把每個詞條當做資料庫中的id),并記錄該詞條所在的文檔id(與資料庫對應)。在查詢時先根據詞條查詢到文檔id,而後擷取文檔。elasticsearch擅長海量資料的搜尋、分析、計算。
3.elasticsearch中一些術語的概念
索引(index):相同類型的文檔的集合
映射(mapping):索引中文檔的字段限制資訊,類似于資料庫中資料表的結構限制。
DSL:DSL是elasticsearch提供的JSON風格的請求語句,用來操作elasticsearch,實作增删改查。
4.常見的mapping屬性
mapping是對索引庫中文檔的限制,常見的mapping屬性包括:
type:字段資料類型,常見的簡單類型有:
字元串:text(可分詞的文本)、keyword(精确值,例如:品牌、國家、ip位址)
數值:long、integer、short、byte、double、float、
布爾:boolean
日期:date
對象:object
index:是否建立索引,預設為true
analyzer:使用哪種分詞器
properties:該字段的子字段
5.索引庫操作
1.建立索引庫
2.檢視、删除索引庫
![在這裡插入圖檔描述](https://img-blog.csdnimg.cn/1ed5bf8a25de4cc08e6223b7de2a3ff5.png
3.修改索引庫
索引庫和mapping一旦建立無法修改,但是可以添加新的字段,文法如下: