2020-01-16 elasticsearch

什么是es

es 全稱elasticsearch
es : 做全文檢索的 ,底層基于lucene的開發(fā)
lucene 相等于jdbc
es 相當于 mybatis/jpa

es和lucene的比較

為什么需要使用es.為什么不用lucene?

(1)api操作很麻煩 不方便

? 搜索 : 創(chuàng)建索引 搜索索引 一堆api

? es: get /product/1 -- {}

(2)lucene不支持集群

? es集群 處理很大的數(shù)據量

? KB -- > MB -->GB -- >TB -- >PB

? 1024KB -- 1MB

? 1024MB -- 1GB

? 1024GB -- 1TB

? 1024TB -- 1PB

Es和solr的區(qū)別

es 和 solr 都可以做全文檢索,solr的重量級的框架,它除了全文檢索以外,還可以做其他的事情(比如

命中標示、分面搜索、動態(tài)聚類、數(shù)據庫集成,以及富文本(如Word、PDF)),solr可以nosql結合起來使用

solr 在傳統(tǒng)的搜索效率要比es好,但是實時搜索領域比es低

使用es

9200web里面展示的效果 9300java程序可以訪問的端口

(2)es的客戶端的交互方式

a) 基于restful風格API的去操作

get post put delete patch

(1)curl的命令方式 --不用

(2)kibana也可以操作

(3)head工具
(4)postman(測試后臺的java代碼)

 b) 通過java代碼去操作

? java通過9300操作es服務器

(3)restful風格 +JSON方式 操作數(shù)據

? http特點 就是無狀態(tài)的

? get /shopping/1

? put /shopping/2 {"name":"xx產品"}

? post /shopping/2 {"name":"xx產品"}

? delete /shopping/1

使用客戶端

kibanna客戶端
index:索引庫
type:相當于mysql的表
json:一行數(shù)據


image.png

文檔的CRUD

基本crud

# 完成crud
# 新增
PUT  crm/employee/1
{
  "name":"xiaorong",
  "age":18
}

# 修改 --整個文檔
POST crm/employee/1
{
  "name":"xiaohuahua"
}
# 修改局部文檔
POST crm/employee/1/_update
{
  "doc":{"name":"xiaohuahua"}
}


# 查詢
GET crm/employee/1

# 刪除

DELETE crm/employee/1

特殊用法

# 展示沒有什么效果(了解)
GET crm/employee/AW-tOSHILqo6XVH8f6cg?pretty

# 展示部分的字段

GET crm/employee/AW-tOSHILqo6XVH8f6cg?_source=age,name

# 返回元數(shù)據
GET crm/employee/AW-tOSHILqo6XVH8f6cg/_source

# 修改數(shù)據 (腳本修改 --了解)
POST crm/employee/AW-tOSHILqo6XVH8f6cg/_update
{
"script" : "ctx._source.age += 5"
}

# 批量新增 --了解
POST _bulk
{ "delete": { "_index": "itsource", "_type": "employee", "_id": "123" }}
{ "create": { "_index": "itsource", "_type": "blog", "_id": "123" }}
{ "title": "我發(fā)布的博客111" }
{ "index": { "_index": "itsource", "_type": "blog" }}
{ "title": "我的第二博客2222" }


GET itsource/blog/_search

文檔的查詢

  • 通過id查詢
GET crm/employee/AW-tOSHILqo6XVH8f6cg/_source
  • 批量查詢
#  不同庫 不同表數(shù)據 (了解)
GET _mget
{
"docs" : [
{
"_index" : "itsource",
"_type" : "blog",
"_id" : "123"
},
{
"_index" : "crm",
"_type" : "employee",
"_id" : "AW-tOSHILqo6XVH8f6cg",
"_source": ["name","age"]
}
]
}

#  同一個庫 同一個表數(shù)據
GET itsource/blog/_mget
{
  "ids":["123","AW-tQP_4Lqo6XVH8f6ci"]
}
  • 其他的查詢
# 分頁查詢
GET crm/employee/_search?size=3&from=6

# 帶條件查詢
GET crm/employee/_search?q=age:38
GET crm/employee/_search?q=age[18 TO 48]
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容