![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Elasticsearch
学习和使用Elasticsearch系列博客
好好生活_
这个作者很懒,什么都没留下…
展开
-
Java操作Elasticsearch6实现单个字段多值匹配
引言单个字段多值匹配的意思类似mysql中某个字段的in查询,最近需求变更,需要在elasticsearch中实现多值匹配,下面总结一下几种实现的方法。基础代码下面是指定查询索引名称和索引类型基础代码:SearchRequest searchRequest = new SearchRequest();searchRequest.indices(indexName);searchRequest.types(indexType);SearchSourceBuilder builder = new原创 2020-12-11 08:50:02 · 10595 阅读 · 0 评论 -
【Elasticsearch】利用kibana调整索引mapping结构
引言在初次创建索引后,索引结构一般都固定不变,但也难免会遇到需求更改而索引结构也需要有对应的调整。本篇博客将介绍如何利用kibana新增字段,并且初始化值。查看索引mapping结构首先,我们可以先通过kibana使用以下API查看某一索引的结构:GET /'index_name'/'index_type'/_mapping 如果对kibana使用API有疑问,可以查看博客kibana安装与使用教程注:API中的index_name和index_type为常量,对应索引名和索引类型。修改索引原创 2020-12-08 12:00:31 · 9615 阅读 · 0 评论 -
【Elasticsearch】java.lang.ClassNotFoundException: org.elasticsearch.client.core.CountRequest
引言之前在Elasticsearch搜索服务中增加了Count方法,可直接根据查询条件得到符合条件的总数,在搜索服务中也已经测试通过,但在引用了该服务的其他业务服务启动报错,如下:排查出现类似ClassNotFoundException这种错误,一般是引用的jar包有问题。搜索服务是用的6.8.6版本,并且该方法已经测试通过,所以想到的问题的原因是不是其他业务服务中引用的Elasticsearch版本并不是该版本的。确实,发现业务服务中引用的elasticsearch版本并不是6.8.6,而是6.原创 2020-12-05 09:37:12 · 3956 阅读 · 0 评论 -
Java操作Elasticsearch6实现group by分组查询
引言通过上篇博客的总结,我们知道了在Elasticsearch6中count、distinct和count(distinct)方法的使用。本篇博客继续聚合查询的学习,也就是对应mysql中的group by的使用。公共实体对于下面要介绍的查询,返回结果为统一实体,代码如下:/** * 单个字段分组返回结果 * * @author : huzhiting * @date : 2020-11-18 15:02 */@Datapublic class AggregationForOneDTO原创 2020-11-18 16:26:24 · 7639 阅读 · 3 评论 -
Java操作Elasticsearch6实现count统计、distinct去重
引言很久没有更新Elasticsearch系列文章,一方面是之前学会的条件查询足以满足项目需求,另一方面是前段时间一直很忙,几个项目的需求交叉进行,没什么时间学习新的东西。本篇博客将更新count、distinct、count(distinct)这几个新学到的Elasticsearch关于查询的方法。1. Count计算在项目中,count也算是一个比较常用的方法。之前项目中有需要用到,都是基于查询所有的方法,直接取total的值返回。最近发现,其实Elasticsearch单独封装了一个Count原创 2020-11-18 11:58:28 · 15274 阅读 · 3 评论 -
【Elasticsearch】Result window is too large, from + size must be less than or equal to: [10000]
引言线上环境使用Elasticsearch分页查询数据,发现最后一页的数据查询无结果返回,查询日志,发现是Elasticsearch报错:Result window is too large, from + size must be less than or equal to: [10000]…问题截图默认设置查询文档,可以看到,默认设置最大查询数量是10000.解决方法我们可以直接利用kibana工具,直接执行以下请求即可:PUT idx_user_info/_settings{原创 2020-10-15 14:48:16 · 661 阅读 · 1 评论 -
Java操作Elasticsearch6实现基本查询
引言业务系统接入Elasticsearch搜索服务后,开始了写查询接口的任务,本篇博客将总结Java操作Elasticsearch一些基本查询的实现。基础代码构建查询条件,对应Elasticsearch其实就是构建SearchRequest对象,指定索引库Name,指定索引库Type,创建SearchSourceBuilder对象,根据需求创建QueryBuilder对象,下面是创建和使用构建对象的基础代码:SearchRequest searchRequest = new SearchReques原创 2020-09-23 11:40:40 · 3495 阅读 · 3 评论 -
【Elasticsearch6.8】局部更新索引数据报错:The number of object passed must be even but was [1]
引言 上周把ES搜索服务搭建好了,这两天在业务系统上对接该服务,遇到了The number of object passed must be even but was [1]这样一个问题,下面记录一下解决的过程。 背景 依据系统需求,我们会将现有系统中所有的用户数据全量同步一次到ES,后面用户在系统中进行信息的更新会增量同步至ES,增量同步代码是用的单个新增/修改文档的方法,具体代码可参见《Rest Client方式集成Spring Boot应用》。 局部更新引入 因为增量更新时,只更新个别字段.原创 2020-09-16 12:18:23 · 1654 阅读 · 0 评论 -
【Elasticsearch6.8】基于SpringBoot构建ES搜索服务
引言通过之前的资料调研,在上篇文章中我们已经整合好Springboot+Elasticsearch6.5的demo。为了满足系统需求,我们会将所有数据入口接入Elasticsearch,然后通过ES去查询数据。所以,我们决定单独出一个搜索服务,接入ES,封装一些操作索引的基本方法,其他服务需要使用,直接引用该服务即可。环境• SpringBoot:2.1.9.RELEASE• Elasticsearch:6.8.6工程结构 核心代码有了上面的工程结构之后,就可以开始写代码了。下面展示一些核.原创 2020-09-12 13:06:00 · 1599 阅读 · 2 评论 -
【Elasticsearch6.5】Rest Client方式集成SpringBoot应用
引言 在上一篇博客中,我们对Elasticsearch操作索引API有了简单应用,并且在Head插件下看到了存储在ES中的索引数据结构。本篇文章将实践如何在SpringBoot应用中去集成Elasticsearch,并且通过代码去完成索引的一系列操作。集成方式 Spring Boot应用集成Elasticsearch有多种方式可以选择,比如可以直接引用SpringBoot官方提供的starter,然后通过hibernate JPA规范,dao层继承ElasticsearchRepository,就相当原创 2020-09-08 20:30:20 · 808 阅读 · 0 评论 -
【Elasticsearch6.5】使用API新建、更新、删除、查询索引数据
引言 通过上篇博客,我们已经在Linux环境下安装好了单机版的Elasticsearch和Head插件。本篇博客主要是照着官网操作一些API,熟悉一下如何建立、查询索引等操作,熟悉一下Head管理页面,这样在后面集成代码的过程中也会有所共鸣。 Index API 通过Index API,我们可以创建或者更新一个具体的索引,数据是JSON格式的文档,通过下面的命令,可以创建一个名为book,类型为_doc,id为377c-11ea-bbca-ec0d9a30b0c2的索引:指定idcurl -.原创 2020-09-06 13:55:35 · 659 阅读 · 0 评论 -
【Elasticsearch6.5】实例与Head插件安装教程
引言 在上篇博客中,我们对Elasticsearch有了一个入门的了解,为了方便后面的深入学习与实践,本篇博客将分享Elasticsearch的安装流程。环境与版本 • 操作系统:CentOS-7-x86_64 • Java环境:JDK8 • Elasticsearch版本:6.5.4单实例安装 1. 下载安装包wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.4.tar.gz 2.原创 2020-09-05 22:27:40 · 426 阅读 · 0 评论 -
全文搜索引擎Elasticsearch入门了解
一. 简要介绍Elasticsearch是实时的分布式搜索分析引擎,底层基于Lucene。Lucene是Java语言编写的全文搜索框架,用于处理纯文本的数据,但它只是一个库,提供建立索引、执行搜索等接口,但不包含分布式服务,这些正是 ES 做的。二. 使用场景基于ES,我们可以很容易地搭建自己的搜索引擎,用于分析日志,或者配合开源爬虫建立某个垂直领域的搜索引擎。除了搜索,ES 还提供了大量的聚合功能,所以它不单单是一个搜索引擎,还可以进行数据分析、统计,生成指标数据。三. 基本概念1. Node和原创 2020-09-05 20:23:47 · 403 阅读 · 0 评论