前言
- 终于开新坑啦,学习学习,学习使我快落
- 参考视频: https://www.bilibili.com/video/BV1hh411D7sb?p=1
- 有大佬已经做笔记了,详细得很(https://blog.csdn.net/u011863024/article/details/115721328),本系列只是知识点提点
- es定位:分布式搜索分析引擎
- 数据分类:结构化数据(mysql存储),非结构化数据(维度广,mongodb存储),半结构化数据(数据的结构和内容混在一起,参照XML)
ELK stack
- es:分布式全文搜索引擎,底层是Lucene项目
- elasticsearch和solr的比较(不作要求)
环境搭建
- 9300: 内部通信端口
- 9200:访问端口号
- 启动服务(启动elasticsearch.bat)和访问服务(9200端口访问)
- REST: 一种互联网架构原则,是资源状态转换的缩写
- 根据特定原则转换,HTTP即遵循该原则
- 遵循统一的接口原则: 如GET
- GET,PUT有幂等性
- POST不是幂等性
基本概念
数据格式
- 关注对应关系,便于理解
- doc: record
- index: db
- type: no exist
倒排索引
- 正向索引: id->content(从id索引检索到content)
- 倒排索引:keyword->id->content(先根据keyword,找到id,然后是content)
索引操作
GET http://127.0.0.1:9200/_cat/indices?v 查看所有索引信息
GET http://127.0.0.1:9200/shopping 查询指定索引
PUT http://127.0.0.1:9200/shopping 创建索引,名字为shopping
DELETE http://127.0.0.1:9200/shopping 删除索引
文档操作
POST http://127.0.0.1:9200/shopping/_doc 此时id自动生成
POST http://127.0.0.1:9200/shopping/_doc/{id} 手动指定id
GET http://127.0.0.1:9200/shopping/_doc/1 主键查询
GET http://127.0.0.1:9200/shopping/_search 全查询
PUT http://127.0.0.1:9200/shopping/_doc/1 全量更新(更新内容放在body中)
POST http://127.0.0.1:9200/shopping/_update/1 增量更新
{
"doc": {
"title":"小米手机",
"category":"小米"
}
}
DELETE http://127.0.0.1:9200/shopping/_doc/{id}
文档查询
GET http://127.0.0.1:9200/shopping/_search?q=category:小米 放在query参数中
GET http://127.0.0.1:9200/shopping/_search 放在请求体中
{
"query":{
"match":{
"category":"小米"
}
}
}
全量查询(查找所有文档内容,返回全部字段)
{
"query":{
"match_all":{}
}
}
全量查询(查找所有文档内容,返回指定字段)
{
"query":{
"match_all":{}
},
"_source":["title"]
}
分页查询(from为起始页,size为返回hit数)
{
"query":{
"match_all":{}
},
"from":0,
"size":2
}
带排序的查询
{
"query":{
"match_all":{}
},
"sort":{
"price":{
"order":"desc"
}
}
}
|