知識儲備 html
學習ElasticSearch以前能夠先了解一下lucene,這裏是我整理的一篇關於lucene的筆記(傳送門),對搜索框架有興趣的還能夠了解一下另外一款企業級搜索應用服務器---solr(傳送門)git
一.ElasticSearch概述github
1.簡介web
ElasticSearch是一個基於Lucene的分佈式搜索服務器,提供Restful API,採用shard(分片)的方式保證數據安全,並提供自動resharding的功能,github等大型站點就是採用了ES做爲其搜索服務。目前開源的ES已經成爲全球搜索引擎的首選,它能夠快速的存儲、搜索和分析海量數據。SpringBoot經過整合SpringData ElasticSearch爲咱們提供了很是便捷的檢索功能支持。docker
二.ElasticSearch 安裝json
1.使用docker安裝ES瀏覽器
docker pull registry.docker-cn.com/library/elasticsearch
2.使用docker啓動ES安全
docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9200:9200 -p 9300:9300 --name ES01 5acf0e8da90b
說明:9200 是web通訊端口,9300是分佈式節點通訊端口,ES默認佔用2G的堆內存空間,通常直接啓用的話,必定會報錯,因此咱們還要使用ES_JAVA_OPTS設置JVM堆內存大小。服務器
2.測試ES是否啓動框架
使用瀏覽器訪問:虛擬機ip地址:9200若成功響應下面的json數聽說明ES已經成功啓動了。
三.ES的基本使用
ES官網爲咱們提供了詳細的文檔,並且很人性化地提供了中文文檔,因此學習起來十分方便。
ES能夠經過Restful API來CRUD數據,可使用PostMan簡單嘗試一下。
1.存儲一條文檔
2.檢索文檔
檢索數據使用get請求:
響應數據:
3.檢測是否有該數據
使用head請求:
注意head請求沒有返回響應體,能夠經過返回的狀態碼判斷是否存在數據,200表示有,404表示沒有。
4.刪除文檔
使用delete請求能夠刪除文檔:
5.更新文檔
更新文檔一樣使用put請求,新的文檔會將舊的文檔覆蓋:
返回的時候version版本變爲2了,表示數據已經更新:
6.檢索employee下的全部數據
注意:請求的時候要把body裏的數據清空,否則會報下面的錯誤:
7.條件查詢
查詢last_name爲Wang的員工。
也可使用json條件查詢,因爲get沒有請求體,能夠改成用post請求:
8.更高級查詢
查詢last_name爲Wang,而且年齡大於30的員工
9.全文檢索
匹配about中含有hello或者w的員工信息。
10.短語搜索
想當於精確匹配,例如找到about爲hello,world的員工信息。
11.高亮搜索
返回值裏會爲高亮的字段自動加上HTML標籤: