访问ElasticSearch的几种方式 您所在的位置:网站首页 云空间支持什么访问方式的 访问ElasticSearch的几种方式

访问ElasticSearch的几种方式

2024-07-16 06:03| 来源: 网络整理| 查看: 265

SprinBoot 系列文章: Spring Boot入门之Hello Spring Boot SpringBoot 配置多个JdbcTemplate SpringBoot 整合Mybatis CAS统一登录认证(3): CAS 客户端接入实践 SpringBoot 整合Mail实现邮件发送 数据库连接池优化配置(druid,dbcp,c3p0) SpringBoot+SpringSecurity+mysql实现认证与授权 SpringBoot+Spring Security基于内存用户认证 SpringBoot+WebSocket在线聊天室、消息推送 SpringBoot+SpringData JPA操作Mysql数据库 SpringBoot热部署值devtools配置 Spring Boot 资源文件属性配置 Spring Boot Server等内容的配置 Spring Boot + FreeMarker模板 SpringBoot+thymeleaf模板 SpringBoot +JDBC连接Mysql数据库 Zipkin分布式任务追踪 SpringBoot应用部署到外置Tomcat Spring Boot + Swagger2 自动生成api接口文档

SpringBoot整合Shiro安全框架 SpringBoot+CAS Client 实现单点登录

SpringBoot 整合MyBatis-Plus SpringBoot + validation 接口参数校验 Springboot+Redis 实现API接口防刷限流

ShardingSphere-ShardingJdbc 数据分片(分库、分表) ShardingSphere-ShardingJdbc 读写分离 ShardingSphere-ShardingJdbc 数据脱敏

springboot+sms 集成腾讯云短信平台 SpringBoot+RabbitMQ 实现消息队列 快速从零搭建一个SpringBoot Web项目 从零快速搭建一个SpringBoot Web项目

SpringBoot+ElasticSearch 实现全文检索 访问ElasticSearch的几种方式 SpringBoot + Activiti 工作流引擎(一、基本概念与环境搭建) SpringBoot + Activiti 工作流引擎(二、流程&任务操作) SpringBoot 定时任务 实现方式

SpringBoot + EhCache实现本地缓存 SpringBoot + Redis 实现分布式缓存

访问ElasticSearch的几种方式:

REST API开源工具(Kibana、Head等)Spring Data Elasticsearch(应用程序使用接口访问或者开源框架) 一、RestAPI 1. 查看集群健康情况 GET /_cat/health?v get:http://localhost:9200/_cat/health?v

在这里插入图片描述

2.查看有哪些索引 GET /_cat/indices?v GET /_cat/indices get:http://localhost:9200/_cat/indices?v

在这里插入图片描述

3. ​​​​​​​创建索引 put:http://localhost:9200/blogindex 4.删除索引 delete: http://localhost:9200/blogindex

在这里插入图片描述

5.创建文档 post:http://localhost:9200/blogindex/blog 或者指定id(存在则类型为修改):http://localhost:9200/blogindex/blog/1 +内容: { "title":"我的第一篇博客", "content":"博客正文123456" }

在这里插入图片描述

6.修改文档 put:http://localhost:9200/blogindex/blog/1 +内容: { "title":"我的第一篇博客", "content":"博客正文123456" }

在这里插入图片描述

7.获取所有文档 get: http://localhost:9200/blogindex/_search 或者:http://localhost:9200/blogindex/blog/_search

在这里插入图片描述

8.按id查询文档 get: http://localhost:9200/blogindex/blog/1

在这里插入图片描述

9.基本条件查询文档 get: http://localhost:9200/blogindex/blog/_search?q=title:我的

在这里插入图片描述 在这里插入图片描述

10.模糊匹配查询 get:http://localhost:9200/blogindex/blog/_search?q=title:h*

在这里插入图片描述 在这里插入图片描述

11.删除文档 delete: http://localhost:9200/blogindex/blog/1

在这里插入图片描述

二、开源工具(Kibana、Head等) 1.查看所有索引 GET /_search 或者 GET _search 或者 GET /_search?timeout=01m

在这里插入图片描述 在这里插入图片描述

参数说明:

took:耗费了几毫秒timed_out:是否超时,false是没有,默认无timeout_shards:shards fail的条件(primary和replica全部挂掉),不影响其他shard。默认情况下来说,一个搜索请求,会打到一个index的所有primary shard上去,当然了,每个primary shard都可能会有一个或多个replic shard,所以请求也可以到primary shard的其中一个replica shard上去。hits.total:本次搜索,返回了几条结果hits.max_score:score的含义,就是document对于一个search的相关度的匹配分数,越相关,就越匹配,分数也高hits.hits:包含了匹配搜索的document的详细数据,默认查询前10条数据,按_score降序排序 2.创建索引 PUT /kibana_blog_index

在这里插入图片描述

3.删除索引 DELETE /kibana_blog_index

在这里插入图片描述

4.创建文档 POST /kibana_blog_index/blog/1 { "tiitle": "springboot入门第一课", "content": "springboot入门第一课content", "star":1, "recommend": 1 }

在这里插入图片描述

5.按id查询文档 GET /kibana_blog_index/blog/1

在这里插入图片描述

6.修改文档 6.1 覆盖,替换文档(全量替换)

POST或者PUT

PUT /kibana_blog_index/blog/1 { "tiitle": "springboot入门第一课111", "content": "springboot入门第一课content111", "star":11, "recommend": 1 }

在这里插入图片描述

** 注意:**

document是不可变的,如果要修改document的内容,可以通过全量替换,直接对document重新建立索引,替换里面所有的内容。es会将老的document标记为deleted(逻辑删除),然后新增我们给定的一个document,当我们创建越来越多的document的时候,es会在适当的时机在后台自动删除(物理删除)标记为deleted的document。替换必须带上所有的field,否则其他数据会丢失。 6.2 修改部分内容 POST /kibana_blog_index/blog/1/_update { "doc" : { "title": "springboot入门第一课1" } }

在这里插入图片描述

7.获取所有文档 GET /kibana_blog_index/blog/_search # 或者 使用query DSL 请求: GET /kibana_blog_index/blog/_search { "query":{ "match_all" : {} }

在这里插入图片描述

8.基本条件查询文档 8.1 基本查询 GET /kibana_blog_index/blog/_search?q=title:1* 8.2 使用query DSL 请求查询 8.2.1 使用query DSL 请求查询 GET /kibana_blog_index/blog/_search { "query" : { "match_all" : {} } }

在这里插入图片描述

8.2.2 查询title包含第一的博客,同时按照star升序排列 GET /kibana_blog_index/blog/_search { "query" : { "match" : { "title" : "第一" } }, "sort" : [ { "star" : "asc"} ] }

在这里插入图片描述

8.2.3 分页查询,同时按照star降序排列 GET /kibana_blog_index/blog/_search { "from" : 1, "size" : 3, "sort" : [ { "star" : "desc"} ] }

在这里插入图片描述

8.2.4 指定查询项 GET /kibana_blog_index/blog/_search { "query" : {"match_all" : {}}, "_source" : ["title", "star"] }

在这里插入图片描述

8.2.5 过滤查询,搜索title包含第一且star大于3的blog GET /kibana_blog_index/blog/_search { "query" : { "bool" : { "filter" : { "range" : { "star": {"gt" : 3} } } } } }

在这里插入图片描述

8.2.6 full-text search(全文检索) GET /kibana_blog_index/blog/_search { "query" : { "match" : { "title": "springboot入门第五课5" } } }

在这里插入图片描述

8.2.7 phrase search(短语搜索) GET /kibana_blog_index/blog/_search { "query" : { "match_phrase" : { "title" : "第五课" } } }

在这里插入图片描述

8.2.8 多条件查询 #title有"第五",star为5,recommond 不为0 GET /kibana_blog_index/blog/_search { "query" : { "bool" : { "must" : [ { "match_phrase" : { "title" : "第五" } } ], "should" : [ { "match" : { "star" : 5 } } ], "must_not" : [ { "match" : { "recommond":0 } } ], "minimum_should_match" : 1 } } }

在这里插入图片描述

两种请求分类:query string search / query DSL

第一种:类似搜索全部商品: GET /ecommerce/product/_search (参数直接拼接在请求上,不带json参数的)query string search的由来,因为search参数都是以http请求的query string来附带的。 搜索商品名称中包含yagao的商品,而且按照售价降序排列:GET /ecommerce/product/_search?q=name:yagao&sort=price:desc 适用于临时的在命令行使用一些工具,比如curl,快速的发出请求,来检索想要的信息;但是如果查询请求很复杂,是很难去构建的,所以在生产环境中,几乎很少使用query string search。第二种:DSL:Domain Specified Language,特定领域的语言 http request body:请求体,可以用json的格式来构建查询语法,比较方便,可以构建各种复杂的语法,比query string search肯定强大太多了。

full-text search (全文检索)和 phrase search(短语搜索)的区别:

全文检索: 会将输入的搜索串拆解开来,去索引里面去一一匹配,只要能匹配任意一个拆解后的单词,就可以作为结果返回。

短语搜索: 要求输入的搜索串,必须在指定的字段文本中,完全包含一模一样的,才可以算匹配成功,才能作为结果返回。

多条件查询中的字段描述:

must 表示一定要满足;should 表示可以满足也可以不满足;must_not 表示不能满足该条件;minimum_should_match:1 表示最小匹配度,可以设置为百分之百,设置了这个值的时候就必须满足should里面的设置了,另外注意这边should里面同一字段设置的多个值,意思是当这个值等于X或者等于Y都成立,务必注意格式。 9.删除文档 DELETE /kibana_blog_index/blog/1

在这里插入图片描述

注意:在删除一个document之后,我们可以从侧面证明,它不是立即物理删除的,因为它的一些版本号信息还是保留的。

三、SpringBoot整合ElasticSearch

请参考:https://blog.csdn.net/u014553029/article/details/110506316



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有