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个人

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