elasticsearch文檔、索引的CRUD操作
阿新 • • 發佈:2018-03-15
get IT 服務 source rep sea div 解決問題 text
elasticsearch概念
1. 集群:一個或者多個節點組織在一起
2. 節點:一個節點是集群中的一個服務器,有一個名字來標識,默認是一個隨機的漫威角色的名字
3. 分片:將索引劃分為多份的能力,允許水平分割和擴展容量,多個分片響應請求,提高性能和吞吐量
4. 副本:創建分片的一份或者多分的能力,在一個節點失敗其余節點可以頂上
elasticsearch與mysql對應關系
index(索引) --- 數據庫
type(類型) --- 表
documents(文檔) --- 行
fields --- 列
HTTP方法
GET、POST、HEAD、OPTIONS、PUT、DELETE 、TRACE、CONNECT
倒排索引
倒排索引源於實際應用中需要根據屬性的值來查找記錄。這種索引表中的每一項都包括一個屬性值和具有該屬性值的各記錄的地址。由於不是由記錄來確定屬性值,而是由屬性值來確定記錄的位置,因而稱為倒排索引(inverted index)。帶有倒排索引的文件我們稱為倒排索引文件,簡稱倒排文件(inverted file)。
待解決問題:
1、大小寫轉換問題
2、詞幹抽取,如looking和look
3、分詞
4、倒排索引文件過大 - 壓縮編碼
elasticelasticsearch文檔、索引的CRUD操作
# 索引初始化操作
# 制定分片和副本的數量# shards一旦設置不能修改 PUT test { "settings":{ "index":{ "number_of_shards":5, "number_of_replicas":1 } } } # 讀取setting信息,多個之間的逗號沒有空格 GET test/_settings GET _all/_settings GET .Kibana,test/_settings # 修改settings PUT test/_settings { "number_of_replicas":3 } # 保存文檔,無需先新建類型job,1是id,不填會自動生成一個 PUT test/job/1 { "title":"elasticsearch文檔、索引的CRUD操作", "city":"廈門", "company":{ "name":"美圖", "company_addr":"廈門市軟件園" } } # 獲取job的信息 GET test/job/1 GET test/job/1?_source GET test/job/1?_source=title GET test/job/1?_source=title,city # 修改文檔,方法一直接覆蓋,方法二update PUT test/job/1 { "title":"elasticsearch文檔、索引的CRUD操作", "city":"廈門", "company":{ "name":"美圖", "company_addr":"廈門市軟件園三期" } } PUT test/job/1/_update { "doc":{ "company_addr":"廈門市軟件園三期" } } # 刪除,類型不支持在Kibana刪除 DELETE test/job/1 DELETE test/job DELETE test
elasticsearch文檔、索引的CRUD操作