Es 安装
安装docker
-
Mac OS 安装 [注:系统需先安装 brew 工具]:
brew install --cask docker
-
查看docker是否完成安装
docker -v
安装-启动Es
-
拉取 Es 镜像
docker pull elasticsearch:7.17.1
-
启动 Es – 单节点启动
-
编写 docker-compose.yml 文档
version: '3.7' services: elasticsearch: image: elasticsearch:7.17.1 container_name: elasticsearch environment: - xpack.security.enabled=false - discovery.type=single-node # 单节点 - "ES_JAVA_OPTS=-Xms512m -Xmx512m" ulimits: memlock: soft: -1 hard: -1 nofile: soft: 65536 hard: 65536 cap_add: - IPC_LOCK volumes: - ./data:/usr/share/elasticsearch/data - ./plugins:/usr/share/elasticsearch/plugins ports: - 9200:9200 - 9300:9300
-
启动Es
docker-compose up -d
-
查看Es 运行状态
docker ps
-
Es 基础用法
索引操作
新增索引-默认索引配置
- put
- {{host}}/20220325001
新增索引-有类型、映射的索引
- put
- {{host}}/20220325002
{ "settings":{ "number_of_shards":5, "number_of_replicas":3 }, "mappings":{ "properties":{ "name":{ "type":"keyword" } } } }
获取索引的map
get
{{host}}/20220325002/_mapping
查询索引
- get
- {{host}}/index_name
删除索引
- delete
- {{host}}/index_name
获取所有的索引
{{host}}/_cat/indices?v
添加数据
添加数据
post
{{host}}/20220325/_doc/
{ "shoppingName":"fudaopin", "price":45.9, "desc":"测试" }
自定义数据id
post || put
{{host}}/20220325/_doc/20220324001
{ "shoppingName":"fudaopin", "price":45.9, "desc":"测试" }
删除数据
删除数据
- delete
- {{host}}/20220325/_doc/20220325001
数据更新
更新数据 put 全量更新
put
{{host}}/20220325/_doc/202203001
{ "shoppingName":"fudaopin", "price":45.9, "desc":"运维" }
更新数据 post非全量更新
- post
- {{host}}/20220325/_update/202203001
{ "doc":{ "desc":"运维" } }
查询数据
查询索引下的所有数据
- get
- {{host}}/20220325/_search
根据id查询数据
get
{{host}}/20220325/_doc/20220325001
根据自定义条件查询数据(关键字拼接模式)
- get
- {{host}}/20220325/_search?q=desc:运维
根据自定义条件查询数据(json请求体模式)
- get
- {{host}}/20220325/_search
{ "query":{ "match":{ "desc":"运维" } } }
全量查询
- get
- {{host}}/20220325/_search
{ "query":{ "match_all":{ } } }
分页查询
- get
- {{host}}/20220325/_search
{ "query":{ "match_all":{ } }, "from":1,// 当前页 "size":2 //每页数量 }
查询特定字段
- get
- {{host}}/20220325/_search
{ "query":{ "match_all":{ } }, "from":1,// 当前页 "size":2, //每页数量 "_source":["shoppingName"] }
对查询结果进行排序
- get
- {{host}}/20220325/_search
{ "from":0, "size":4, "sort":{ "price":{ "order":"desc" } }, "query":{ "match_all":{} } }
多条件查询-and
- get
- {{host}}/20220325/_search
{ "query":{ "bool":{ "must":[ { "match":{ "shoppingName":"fudaopin" } },{ "match":{ "desc":"运维" } }]//多条件必须同事成立 } } }
多条件查询-or
- get
- {{host}}/20220325/_search
{ "query":{ "bool":{ "should":[ { "match":{ "shoppingName":"fudaopin" } }, { "match":{ "desc":"运维" } } ] } } }
范围查询
- get
- {{host}}/20220325/_search
{ "from":0, "size":1, "query":{ "bool":{ "should":[], "filter":{ "range":{ "price":{ "gt":30 // 大于 30 } } } } } }
全量匹配
- get
- {{host}}/20220325/_search
{ "query":{ "match_phrase":{ "desc":"运维" } } }
高亮显示
get
{{host}}/20220325/_search
{ "query":{ "match_phrase":{ "shoppingName":"fudaopin" } }, "highlight":{ "fields":{ "shoppingName":{} } } }
聚合查询
- get
- {{host}}/20220325/_search
{ "aggs":{ "price_group":{//名称--随意 "terms":{// 分组关键字 "field":"price"//分组的字段 } } } }
去掉多余数据–只取聚合结果
- get
- {{host}}/20220325/_search
{ "aggs":{ "price_group":{//名称--随意 "terms":{// 分组关键字 "field":"price"//分组的字段 } } }, "size":0 }
求平均值
- get
- {{host}/20220325/_search
{ "aggs":{ "price_avg":{//名称--随意 "avg":{// 分组关键字 "field":"price"//分组的字段 } } }, "size":0 }
##最近正在做一个搜索的项目,后续会继续更新Es相关技术