elasticsearch7.6.x 整合springboot2(一)

一、RestFul风格说明

一种软件架构风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交
互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。

PUT localhost:9200/索引名称/类型名称/文档id 创建文档(指定文档id)

POST localhost:9200/索引名称/类型名称 创建文档(随机文档id)

POST localhost:9200/索引名称/类型名称/文档id/_update 修改文档

DELETE localhost:9200/索引名称/类型名称/文档id 删除文档

GET localhost:9200/索引名称/类型名称/文档id 查询文档通过文档id

POST localhost:9200/索引名称/类型名称/_search 查询所有数据

二、索引的基本操作增删改查

1、创建一个索引

类型名:将来就没有了

PUT /索引名/类型名/文档id
{请求体}

在kibana里面插入

PUT /test1/type/1
{
 "name": "科比", 
 "age": "41"
}

在这里插入图片描述
在这里插入图片描述
如上图 在head里面看到科比这条数据就被插入进去了

2、用mapping 设置规则,规则里面有properties属性
test2: 类似数据库中的表名
mappings:类似规则
properties : 类似属性
name:类似字段名
type:类似字段属性

PUT /test2
{
 "mappings": {
   "properties": {
     "name": {
       "type": "text"
     },
     "age": {
       "type": "long"
     },
     "birthday": {
       "type": "date"
     }
   }
 }
}

如图创建规则
在这里插入图片描述
3、创建完规则以后获取test2

GET test2

可以看到设置的索引信息在这里插入图片描述
4、再来创建一个test3

PUT /test3/_doc/1
{
  "name": "杜兰特",
  "age": 13,
  "birth": "1997-01-05"
}

在这里插入图片描述
GET test3

在这里插入图片描述
如果自己的文档字段没有指定,那么es就会自动默认配置字段类型
扩展:
通过命令elasticsearch索引情况
GET _cat/ 可以获得es当前信息
GET _cat/health 查看健康状况
GET _cat/indices 查看索引库

5、修改

第一种方法:
提交试用PUT进行修改

PUT /test3/_doc/1
{
  "name": "杜兰特科比",
  "age": 13,
  "birth": "1997-01-05"
}

在这里插入图片描述
可以看到updated已经修改成功了

第二种方法: POST修改
加上
_update的方式进行修改

POST /test3/_doc/1/_update
{
  "doc": {
    "name": "法外狂徒张三"
  }
}

6、删除

删除索引:

DELETE test1

在这里插入图片描述
删除索引下面的文档:

DELETE test3/_doc/1
在这里插入图片描述
在这里插入图片描述
如上图 发现已经没有数据了

三、索引的复杂查询

1、增加后查询只查询一个属性

PUT /test3/_doc/2
{
  "name": "科比",
  "age": 13,
  "birth": "1997-01-05"
}

GET /test3/_doc/_search
{
  "query": {
    "match": {
      "name": "科比"
    }
  }
}

在这里插入图片描述
如上图:
hits :索引和文档的信息 查询的结果总数
然后就是查询的具体文档
数据中的东西都可以遍历出来
total 意思是有2条
relation 关系是 equal 匹配
通过max_score来判断谁更加符合结果

2、增加后查询按条件查询


GET /test3/_doc/_search
{
  "query": {
    "match": {
      "name": "科比"
    }
  },
  "_source": ["name","age"]
}

过滤
_source
字段
意思是只看需要字段的结果

在这里插入图片描述
Java操作es 所有方法和对象就是这里面的key

排序
sort
字段

asc desc对年龄进行排序

GET /test3/_doc/_search
{
  "query": {
    "match": {
      "name": "科比"
    }
  },
  "_source": ["name","age"],
  "sort": [
    {
      "age": {
        "order": "desc"
      }
    }]
}

分页
from
size

from是从第几页开始
size是大小

GET /test3/_doc/_search
{
  "query": {
    "match": {
      "name": "科比"
    }
  },
  "_source": ["name","age"],
  "sort": [
    {
      "age": {
        "order": "asc"
      }
    }],
    
    "from": 0,
    "size": 2
}

数据下标还是从0开始
/search/{current}/{pagesize}

布尔查询 返回 true or false
must 意思是所有条件都必须符合
should 意思是满足一个条件就可以
must_not 意思是不是非必须 反向操作

GET /test3/_doc/_search

{
  "query": {
    "bool": {
      "must": [
        {
          "match":
          {
            "name": "杜兰特"
          }
        },
        {
          "match":
          {
            "age": 3 
          }      
          }
        ]
      }
    }
  }

过滤器
gt 大于
gte大于等于
lt小于
lte小于等于

FIELD 可以替换为自己想要查询的字段

GET /test3/_doc/_search

{
  "query": {
    "bool": {
      "should": [
        {
          "match":
          {
            "name": "杜兰特"
          }
        },
        {
          "match":
          {
            "age": 50
          }
           
          }
  
        ],
        "filter": {
          "range": {
            "FIELD": {
              "gte": 10,
              "lte": 20
            }
          }
        }
      }
    }
  }

匹配多个条件


PUT /test3/user/1
{
  "name": "杜兰特",
  "age": 35,
  "desc": "跳投无人能防",
  "tags": ["男人","技术","三分王"]
}

GET /test3/_search

{
  "query": {
    "term": {
      "name": "杜"
      
    }
    
  }
  }

term可以精确查询

高亮查询

搜索的结果相关

GET /test3/user/_search

{
  "query": {
    "match": {
      "name": "杜兰特"
    }
  },
     "highlight": {
       "fields": { 
       "name": {}
     }
  }
  }

自定义高亮条件

GET /test3/user/_search

{
  "query": {
    "match": {
      "name": "杜兰特"
    }
  },
     "highlight": {
       "pre_tags": "<p class='key' style='color:red'>",
       "post_tags": "</p>", 
       "fields": { 
       "name": {}
     }
  }
  }
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值