视频学习链接:https://www.bilibili.com/video/BV1hh411D7sb
基础知识
Elastic search:
- 开源的高扩展的分布式全文搜索引擎,整个ES技术栈的核心。
- 近乎实时的存储、检索数据
- 扩展性好,可扩展上百台服务器,处理PB级别的数据
- 基于Lucene开发(Lucene提供了全文检索的能力,但是没有办法直接使用)
入门(mac版本)
官网下载地址:https://www.elastic.co/cn/downloads/elasticsearch
浏览器访问出现图中结果即表示启动成功(注意不要重复启动):
-
停止
可以通过杀掉进程号的方式,停止es
ps -ef |grep elastic
kill -9 93467
-
http方式使用ES
语法官方使用文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-query-string-query.html?baymax=rec&rogue=pop-1&elektra=docs
使用postman创建
索引就等同于数据库,文档相当于表
动作 请求方式 地址 参数 幂等性 备注 创建索引 PUT http://127.0.0.1:9200/shopping Y 查看索引 GET http://127.0.0.1:9200/shopping Y 删除索引 DELETE http://127.0.0.1:9200/shopping Y 查看所有索引 GET http://127.0.0.1:9200/_cat/indices?v Y 创建索引下的文档 POST http://127.0.0.1:9200/shopping/_doc {“name”:“小米手机”,“category”:“小米”,“price”:1000.00} N 相同文档可存储多次,每次响应的id不同 创建索引下的文档(自定义id) POST http://127.0.0.1:9200/shopping/_doc/1001 {“name”:“小米手机”,“category”:“小米”,“price”:1000.00} N PUT也可以(多次请求id不变,但是version会变,类似于修改了内容) 获取shoping下的所有数据 GET http://127.0.0.1:9200/shopping/_search Y 完全修改数据 PUT http://127.0.0.1:9200/shopping/_doc/1001 {“name”:“小米手机”,“category”:“小米”,“price”:4000.00} N 修改部分数据 POST http://127.0.0.1:9200/shopping/_update/1001 {“doc”:{“name”:“华为手机”}} Y 请求多次version并没有增加 条件查询 GET http://127.0.0.1:9200/shopping/_search?q=category:小米 路径拼参数 条件查询 GET http://127.0.0.1:9200/shopping/_search {“query”:{“match”:{“category”:“小米”}}} 请求体拼参数 分页查询 GET http://127.0.0.1:9200/shopping/_search {“query”:{“match_all”:{}},“from”:0,“size”:2} from:页码,计算公式:(页码-1)*每页数据条数;size:每页数据条数 查询:指定显示内容 GET http://127.0.0.1:9200/shopping/_search {“query”:{“match_all”:{}},“from”:0,“size”:2,"_source":[“name”,“price”]} 排序查询 GET http://127.0.0.1:9200/shopping/_search {“query”:{“match_all”:{}},"_source":[“name”,“price”],“sort”:{“price”:{“order”:“asc”}}} 排序的价格必须是 数字 连接查询 and GET http://127.0.0.1:9200/shopping/_search {“query”:{“bool”:{“must”:[{“match”:{ “category”:“小米”}},{“match”:{“price”:1000.00}}]}}} must 连接查询 or GET http://127.0.0.1:9200/shopping/_search {“query”:{“bool”:{“should”:[{“match”:{ “category”:“小米”}},{“match”:{“price”:1000.00}}]}}} should 范围查询 GET http://127.0.0.1:9200/shopping/_search {“query”:{“bool”:{“should”:[{“match”:{ “category”:“小米”}},{“match”:{“price”:1000.00}}],“filter”:{“range”:{“price”:{“gt”:4000.00}}}}}} filter 全文关键词检索 GET http://127.0.0.1:9200/shopping/_search {“query”:{“match_phrase”:{“category”:“小米”}}} 关键词查询,不对查询条件做分词处理 检索结果高亮显示 GET http://127.0.0.1:9200/shopping/_search {“query”:{“match_phrase”:{“category”:“小米”}},“highlight”:{“fields”:{“category”:{}}}} 返回结果增加了html样式 聚合查询:分组 {“aggs”:{“price_group”:{“terms”:{“field”:“price”}}}} aggs 表示聚合查询;price_group 分组名称 自定义;terms 分组。结果会根据字段分组 聚合查询:平均值 {“aggs”:{“price_avg”:{“avg”:{“field”:“price”}}}} avg 求字段平均值 http 创建索引映射 {“properties”:{“name”:{“type”:“text”,“index”:true},“sex”:{“type”:“keyword”,“index”:true},“tel”:{“type”:“keyword”,“index”:false}}} properties 索引配置;name 文档字段;type:“text” 字段类型;index 是否给此字段创建索引;keyword 关键字,即不对此属性做分词处理