ES:分布式全文搜索引擎
windiows安装之后运行bat批处理文件执行
ES没有数据库的概念,但是有索引的概念
启动Es后,直接对ES发请求,在请求路径之后跟上索引(http://localhost:9200/books),ES全面支持Restful风格的操作
1 |
|
PS:注意索引是不允许重复的,所以不能发起两次put请求,不然报错
想要创建的索引具有分词效果,因该对索引添加分词器(加入到索引的mappings的属性中),解压后放到ES安装目录的plugins插件目录下
直接在创建索引时,将mappings的json格式的数据从请求体的raw中通过Put请求提交
参考格式:(指定每一个属性的检索策略)
1 | { |
添加索引的文档,在索引后加/_doc代表添加该索引的文档,另外还有__create,需要制定id,如果不指定id那么会自动分配id
一个索引可以有多个文档,指定文档的id可以在文档后面再加一个斜杠和数字来指定,直接在请求体中添加id是不生效的
get方法必须添加id,不然让ES以为你是post请求,报405错误
也可以查全部,直接使用_search
按内容进行条件查询:
类似于:http://localhost:9200/books/_search?q=name:spring
上面按name的值进行查询
修改文档:PUT全量修改,传入完整的请求体
POST部分修改:指定id,传入doc(确定类型)和要修改的属性即可
ES整合SpringBoot
加入maven依赖,注意使用高版本的依赖(elasticsearch-rest-high-level-client)而不是低版本的ES
高版本的ES不支持自动注入,所以需要手动去创建客户端对象,调用ES对象的方法手动操作,手动关闭close客户端client
通过ES对象的方法和属性的设置,来创建修改索引和文档(数据),一般请求中的就使用对象方法,请求体中的就通过设置属性添加
这里可以将数据库中的实体类数据通过fastjson转换为json,直接将数据传入
添加完fastjson依赖后,调用JSON.toJSONString方法,参数为对象,将对象转换为json,一般SpringBoot会自动转换为Json,因为是手动的所以要手动用fastJSON转换
BulkRequest可以创建一个批处理的请求对象,将该对象传入client.bulk方法中,并且加上请求参数来批处理添加文档,
PS:单个文档需要创建IndexRequest对象之后,传入json数据和类型参数后经client发起请求
下面是普通按id查询的代码,直接将request对象传入client的获取响应的方法中并且带上请求的默认参数,获得响应输出即可
1 |
|
将json转换为对象,调用JSON.parseObject(json数据,转换成的目标类型.class)
按条件查询的编码方法:
1 |
|
如果您喜欢此博客或发现它对您有用,则欢迎对此发表评论。 也欢迎您共享此博客,以便更多人可以参与。 如果博客中使用的图像侵犯了您的版权,请与作者联系以将其删除。 谢谢 !