一种软件架构风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。
基于Rest命令说明:
基础测试
1.创建索引
PUT /索引名/类型名(未来没有了)/文档id
{请求体}
2.完成了自动增加索引! 数据也添加成功, 这个初期可以把它当做数据库学习。
text 、 keyword
long 、integer 、short 、 byte 、 double、 float 、half float 、scaled float
date
boolean
binary
…
4.指定字段的类型
获得这个规则!可以通过GET请求获取具体的信息!
5.查看默认的信息
如果自己的文档字段没有指定,那么es就会给我们默认配置字段类型。
扩展:通过命令elasticsearch索引情况!
通过GET _cat/ 可以获得es的当前的很多信息!
修改 提交还是使用PUT即可! 然后覆盖
曾经的办法:
现在的办法:
删除索引
通过DELETE命令是实现删除,根据你的请求来判断是删除索引还是删除文档记录!
使用RESTFUL风格是ES推荐使用的。
基本操作
1.添加数据:
PUT /kuangshen/user/1
{
"name": "狂神说",
"age":23,
"desc": "即使再小的帆也能远航",
"tags": ["技术宅", "温暖", "努力"]
}
2.获取数据 GET
3.更新数据 PUT
PUT操作,如果里面的内容不是完整的,那么右边的内容将会在PUT命令执行时置空。
4.POST _update 推荐使用这种更新方式
put如果不传递值就会被覆盖, post灵活性更高。
简单搜索
GET kuangshen/user/1
简单的条件查询, 可以根据默认的映射规则,产生基本的查询
复杂操作搜索 select(排序,分页, 高亮, 模糊查询, 精准查询)
查询指定的结果:
我们之后使用java操作es,所有的方法和对象就是这里面的key!
排序
desc降序排序
分页
数据下标还是从0开始的,和学的所有的数据结构是一样的。
布尔值查询
must(相当于mysql中的and),所有的条件都要符合 相当于where id = 1 and name = xxx
should(相当于mysql中的or),所有的条件都要符合 相当于where id = 1 or name = xxx
must_not(not)
过滤器filter
lt :小于 gt:大于
匹配多个条件!
精确查找
term查询是直接通过倒排索引指定的词条进行精确的查找的!
关于分词:
term ,直接查询精确的
match,会使用分词器解析!(先分析文档,然后通过分析的文档进行查询!)
两个类型 text keyword
多个值匹配的精确查询
高亮查询
自定义高亮查询:
这些MySQL也可以做,只是效率更低
B站学习网址:【狂神说Java】ElasticSearch7.6.x最新完整教程通俗易懂_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili