ElasticSearch入门学习
下载ElasticSearch
找到官网
链接: https://www.elastic.co/cn/elasticsearch/
点击下载
因为是个人学习使用使用Windows版本
运行
下载解压打开bin目录运行elasticsearch.bat
查看启动
发现有一个9200端口和9300端口,9300端口是es内部通讯端口,9200是http RESTful端口,用postman请求查看返回结果
创建-查询-删除索引
创建索引
创建一个shopping索引,用put请求127.0.0.1:9200/shopping
查询索引
get请求 127.0.0.1:9200/shopping
查询全部索引
get 请求 127.0.0.1:9200/_cat/indices?v
删除索引
delete 请求 127.0.0.1:9200/shopping
数据的创建和查询
创建
post 请求 127.0.0.1:9200/shopping/_doc 添加JSON数据
{
"name":"小吴",
"age":18
}
自定义id创建
post请求 127.0.0.1:9200/shopping/_doc/1001
根据id查询当前shopping的数据
get请求 127.0.0.1:9200/shopping/_doc/{id}
查询当前shopping的全部数据
gte 请求 127.0.0.1:9200/shopping/_doc/_search
修改数据
全量修改
PUT 请求 127.0.0.1:9200/shopping/_doc/1001
再次查询发现已经被修改为19了
POST 修改数据也可以的但是得指定id 请求 127.0.0.1:9200/shopping/_doc/1001
发现已经修改为20了
局部修改
先查询id为 1001的数据
post 请求 127.0.0.1:9200/shopping/_update/1001
{
"doc":{
"name":"小代2号"
}
}
这时再来查询发现name已经发生变化了
删除
用DELETE 请求 127.0.0.1:9200/shopping/_doc/1001
再来查询 发现已经没了
条件查询
单个匹配
get 请求 127.0.0.1:9200/shopping/_doc/_search
{
"query" : {
"match": {
"name":"代"
}
}
}
全量匹配
get 请求 127.0.0.1:9200/shopping/_doc/_search
{
"query" : {
"match_phrase": {
"name":"小吴"
}
}
}
这是就会精确匹配小吴
分页查询&分页&排序
get 请求 127.0.0.1:9200/shopping/_doc/_search
{
"query" : {
"match_phrase": {
"name":"小吴"
}
},
"from":0,
"size":2
}
from 从哪来开始查,size每页数据
选择数据源
{
"query" : {
"match_phrase": {
"name":"小吴"
}
},
"from":0,
"size":2,
"_source":"name"
}
排序
{
"query" : {
"match_phrase": {
"name":"小吴"
}
},
"from":0,
"size":2,
"_source":["name","age"],
"sort":{
"age":{
"order":"desc"
}
}
}
发现最大的已经在最前面了
多条件查询
多个条件同时成立 (类似sql的and)
{
"query": {
"bool": {
"must": [
{
"match_phrase": {
"name": "小吴"
}
},
{
"match_phrase": {
"age": 18
}
}
]
}
},
"from": 0,
"size": 2,
"_source": [
"name",
"age"
],
"sort": {
"age": {
"order": "desc"
}
}
}
查询name是小吴 并且age是18
多个条件或者 (类似sql的or)
{
"query": {
"bool": {
"should": [
{
"match_phrase": {
"name": "小吴"
}
},
{
"match_phrase": {
"name": "小代"
}
}
]
}
},
"from": 0,
"size": 2,
"_source": [
"name",
"age"
],
"sort": {
"age": {
"order": "desc"
}
}
}
发现把小吴和小代的都查询出来了
范围查询
{
"query": {
"bool": {
"should": [
{
"match_phrase": {
"name": "小吴"
}
},
{
"match_phrase": {
"name": "小代"
}
}
],
"filter": {
"range": {
"age": {
"gt": 20
}
}
}
}
},
"from": 0,
"size": 2,
"_source": [
"name",
"age"
],
"sort": {
"age": {
"order": "desc"
}
}
}
age大于20
查询结果
学习资料
https://www.bilibili.com/video/BV1hh411D7sb?p=14&share_source=copy_web