elasticsearch

1.下載軟件

https://elasticsearch.cn/download/
elasticsearch
elasticsearch
#點擊上面的網址 下載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 #啓動服務
測試訪問
elasticsearch
#能顯示這個頁面說明成功了

2.安裝 elasticsearch-head等工具

elasticsearch
#用Google瀏覽器的的應用商店搜索
elasticsearch
elasticsearch
#輸入ip:9200訪問

#安裝advanced rest client
elasticsearch
elasticsearch
elasticsearch

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
elasticsearch
elasticsearch
#用elasticsearch-head看,已經有一個索引了

3.2刪除索引

DELETE /haoke

{
    "acknowledged": true
}

elasticsearch
#成功返回200 響應碼()
elasticsearch
#在打開elasticsearch-head 看,發現索引已經沒有了

3.3 插入數據(插入數據之前先創建一個索引)

URL規則:
POST /{索引}/{類型}/{id}

POST http://50.1.1.111:9200/haoke

{
"id":1001,
"name":"張三",
"age":20,
"sex":"男"
}

elasticsearch
elasticsearch
#在切到查看工具能看到多出一條記錄

不指定id插入數據:
POST 50.1.1.111:9200/haoke/user/

{
"id":1002,
"name":"張三",
"age":20,
"sex":"男"
}

elasticsearch
#可以看到url裏不加ID _id字段將自動生成

3.4 更新數據

PUT 50.1.1.111:9200/haoke/user/1001

{
"id":1001,
"name":"張三",
"age":21,
"sex":"女"
}

elasticsearch
#看結果反饋,可以看到版本+1了
elasticsearch
#看軟件,能看到id爲"1001"的性別確實變成了"女"

3.5 局部更新

POST 50.1.1.111:9200/haoke/user/1001/_update

{
    "doc": {
        "age": 23
    }
}

elasticsearch
#看結果反饋,版本已經到第3版了。
elasticsearch
#數據內容也確實被改變了

3.6 刪除數據

DELETE 50.1.1.111:9200/haoke/user/1001
在Elasticsearch中,刪除文檔數據,只需要發起DELETE請求即可。(不需要json代碼)
elasticsearch
#需要注意的是,result表示已經刪除,version也更加了。如果刪除一條不存在的數據,會響應404:
elasticsearch
說明:
刪除一個文檔也不會立即從磁盤上移除,它只是被標記成已刪除。Elasticsearch將會在你之後添加更多索引的時候纔會在後臺進行刪除內容的清理,因爲

elasticsearch
#數據依然不在

3.7 搜索數據

搜索數據之前先多插點數據
elasticsearch
#上面是插入的數據,下面我要搜索 畫圈的的數據
GET 50.1.1.111:9200/haoke/user/BsuAzXAB_G2CqNSlIVLu
#get 不需要其他參數
elasticsearch

搜索全部數據

GET 50.1.1.111:9200/haoke/user/_search
elasticsearch
#看結果反饋,有5條記錄,且能看到原始數據

查詢年齡等於20的記錄

GET 50.1.1.111:9200/haoke/user/_search?q=age:20
elasticsearch
#只找到了一條記錄

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
        }
    }
}

elasticsearch
#找到一條記錄,且年齡是21

DSL查詢年齡大於21歲的男性用戶

POST 50.1.1.111:9200/haoke/user/_search

{
    "query": {
        "bool": {
            "filter": {
                "range": {
                    "age": {
                        "gt": 21
                    }
                }
            },
            "must": {
                "match": {
                    "sex": "男"
                }
            }
        }
    }
}

elasticsearch
#找到兩條同時滿足年大於21且性別爲男性。、

高亮顯示

POST 50.1.1.111:9200/haoke/user/_search

{
    "query": {
        "match": {
            "name": "張三 李四"
        }
    },
    "highlight": {
        "fields": {
            "name": {}
        }
    }
}

elasticsearch

聚合
POST 50.1.1.111:9200/haoke/user/_search

{
    "aggs": {
        "all_interests": {
            "terms": {
                "field": "age"
            }
        }
    }
}

elasticsearch
#看結果反饋,能看到每個年齡都有1個人

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章