1.下載軟件
https://elasticsearch.cn/download/
#點擊上面的網址 下載rpm包
yum install elasticsearch-7.6.1-x86_64.rpm -y #安裝
vi /etc/elasticsearch/elasticsearch.yml #修改以下配置
network.host: 0.0.0.0
#修改監聽端口爲全局
discovery.seed_hosts: ["host1"]
systemctl restart elasticsearch.service #啓動服務
測試訪問
#能顯示這個頁面說明成功了
2.安裝 elasticsearch-head等工具
#用Google瀏覽器的的應用商店搜索
#輸入ip:9200訪問
#安裝advanced rest client
https://www.sojson.com/ #一個在線轉換json 格式化的工具
安裝Postman 軟件
https://dl.pstmn.io/download/latest/win64 #下載
win7 如果無法安裝 就更新KB2533623補丁
3.1、創建非結構化索引
創建空索引:
PUT /haoke
{
"settings": {
"index": {
"number_of_shards": "2",#分片數
"number_of_replicas": "0"#副本數
}
}
}
#用elasticsearch-head看,已經有一個索引了
3.2刪除索引
DELETE /haoke
{
"acknowledged": true
}
#成功返回200 響應碼()
#在打開elasticsearch-head 看,發現索引已經沒有了
3.3 插入數據(插入數據之前先創建一個索引)
URL規則:
POST /{索引}/{類型}/{id}
POST http://50.1.1.111:9200/haoke
{
"id":1001,
"name":"張三",
"age":20,
"sex":"男"
}
#在切到查看工具能看到多出一條記錄
不指定id插入數據:
POST 50.1.1.111:9200/haoke/user/
{
"id":1002,
"name":"張三",
"age":20,
"sex":"男"
}
#可以看到url裏不加ID _id字段將自動生成
3.4 更新數據
PUT 50.1.1.111:9200/haoke/user/1001
{
"id":1001,
"name":"張三",
"age":21,
"sex":"女"
}
#看結果反饋,可以看到版本+1了
#看軟件,能看到id爲"1001"的性別確實變成了"女"
3.5 局部更新
POST 50.1.1.111:9200/haoke/user/1001/_update
{
"doc": {
"age": 23
}
}
#看結果反饋,版本已經到第3版了。
#數據內容也確實被改變了
3.6 刪除數據
DELETE 50.1.1.111:9200/haoke/user/1001
在Elasticsearch中,刪除文檔數據,只需要發起DELETE請求即可。(不需要json代碼)
#需要注意的是,result表示已經刪除,version也更加了。如果刪除一條不存在的數據,會響應404:
說明:
刪除一個文檔也不會立即從磁盤上移除,它只是被標記成已刪除。Elasticsearch將會在你之後添加更多索引的時候纔會在後臺進行刪除內容的清理,因爲
#數據依然不在
3.7 搜索數據
搜索數據之前先多插點數據
#上面是插入的數據,下面我要搜索 畫圈的的數據
GET 50.1.1.111:9200/haoke/user/BsuAzXAB_G2CqNSlIVLu
#get 不需要其他參數
搜索全部數據
GET 50.1.1.111:9200/haoke/user/_search
#看結果反饋,有5條記錄,且能看到原始數據
查詢年齡等於20的記錄
GET 50.1.1.111:9200/haoke/user/_search?q=age:20
#只找到了一條記錄
3.8 DSL搜索
Elasticsearch提供豐富且靈活的查詢語言叫做DSL查詢(Query DSL),它允許你構建更加複雜、強大的查詢。
DSL(Domain Specific Language特定領域語言)以JSON請求體的形式出現。
POST 50.1.1.111:9200/haoke/user/_search
{
"query": {
"match": { #match只是查詢的一種
"age": 21
}
}
}
#找到一條記錄,且年齡是21
DSL查詢年齡大於21歲的男性用戶
POST 50.1.1.111:9200/haoke/user/_search
{
"query": {
"bool": {
"filter": {
"range": {
"age": {
"gt": 21
}
}
},
"must": {
"match": {
"sex": "男"
}
}
}
}
}
#找到兩條同時滿足年大於21且性別爲男性。、
高亮顯示
POST 50.1.1.111:9200/haoke/user/_search
{
"query": {
"match": {
"name": "張三 李四"
}
},
"highlight": {
"fields": {
"name": {}
}
}
}
聚合
POST 50.1.1.111:9200/haoke/user/_search
{
"aggs": {
"all_interests": {
"terms": {
"field": "age"
}
}
}
}
#看結果反饋,能看到每個年齡都有1個人