草庐IT

ElasticSearch基础入门,白话es

ElasticSearch是一个搜索服务器。以下简称es作用:进行搜索那么问题来了,mysql不是也能搜索吗,为何要用es?小数据量下,Mysql是完全可以胜任的,可以完成搜索,此时可以不用es;但是在大数据量(百万千万甚至上亿)的前提下,会有以下几个问题:性能低:使用模糊查询,左边有通配符,不会走索引,会全表扫描,性能低功能弱:如果以”华为手机“作为条件,可能查询不出来想要的数据而es可以完美解决以上问题:es可以自动对条件进行分词。比如华为手机,可以分成华为手机、华为、手、手机等词语。这样,搜索匹配的范围就大多了。es的倒排索引,也叫反向索引。倒排索引:将文档进行分词,形成词条和id的对应

使用logstash把mysql同步到es,Kibana可视化查看

1:首先需要电脑本地有es环境,并且要牢记版本后,后续安装的logstash和Kibana一定要版本对应查看es版本:http://localhost:9200/2:安装对应版本的logstash:找到自己对应ES版本,然后解压Logstash下载地址:https://www.elastic.co/cn/downloads/logstash3:解压后我这里重命名了一下,进入后是这个样子:4:进入bin目录,新建配置为文件:my_logstash.conf,里面的jdbc_driver_library需要自己手动添加这个jar包,然后statement设置为你所需的sql语句,里面注释也写得很清

es AggregationBuilders 聚合查询

es的聚合查询聚合的分类DSL语言实现Bucket聚合DSL实现Metrics聚合(结合Bucket)在项目中遇到一块关于es的多条件聚合的代码,如下:AggregationBuilders.terms(“agg_name”).field(“name”).size(Integer.MAX_VALUE).subAggregation(AggregationBuilders.topHits(“top”).sort(“time”,SortOrade.DESC).from(0).size())读的时候不是很理解,因此对多条件聚合进行一下系统学习。聚合的分类聚合(aggregations)可以实现对文档

DataX案例分享01(Hive -> ES)

1、背景最近公司要搭建一个大数据ETL平台,过程涉及一些测试工作,在测试过程中,将一些可用性强的步骤给记录下来,方便后面开发作业的时候,拿来直接copy数据来源于HIve(一些加工好的指标),需要存储至ES(用于接口查询),如此离线数据ETL自然会想到阿里的DataX啦2、环境介绍作业流程:从HIve中读取数据,直接写入至ES库表中本机环境:Linux(7.9)、DataX(3.0)、Hadoop(3.1.3)、Hive(3.1.2)、ES(7.8.0)集群节点:3台(node01、node02、node03),ES安装在node03(单节点)3、任务准备3.1查看官网支持数据源可以看出,官网

es 提示 NoNodeAvailableException[None of the configured nodes are available

场景服务上线部署后,访问日志接口提示  NoNodeAvailableException[Noneoftheconfigurednodesareavailablelinux本地测试环境elasticsearch服务,应用服务部署在同一ip下(测试的时候没有问题)本地elasticsearch.yml部署配置如下cluster.name:gis-elknode.name:node-1network.host:192.168.100.88http.port:9200http.cors.enabled:truehttp.cors.allow-origin:"*"访问:192.168.100.88:9

es笔记一之es安装与介绍

本文首发于公众号:Hunter后端原文链接:es笔记一之es安装与介绍首先介绍一下es,全名为Elasticsearch,它定义上不是一种数据库,是一种搜索引擎。我们可以把海量数据都放到es里然后提供搜索操作,但是MySQL也同样可以提供搜索,为什么要用es呢?一个是因为它搜索快,使用倒排索引的方式将数据分词之后存储数据,查询的时候直接根据搜索关键词找到相关数据。另一个是因为它可以提供一些MySQL做不到或者比较耗时的模糊搜索,这个我们后续再介绍。1、es和kibana的安装es和kibana的安装这里可以直接看我之前的一篇博客文章,讲的很详细,或者去官网找相应的安装步骤。es和kibana安

ES 查询语句总结(3)聚合总结

背景今年写了一个数据中心的项目,其中有相当一部分的数据查询,用的是ES来做的,涉及到dsl的查询语句,从最开始的简单查询,到后面的复杂的查询,逐步掌握了ES的常用写法,现在总结一下。文章内的称呼,没有按照ES的官方称呼,例如sql那边的表叫type,sql那边的行叫documents,sql那边的列或者字段叫fields。为了方便起见,统一按照sql的叫法。查询语句解释说明先看一个查询语句示例四:{"size":0,"query":{"bool":{"must":[{"bool":{"must":[{"terms":{"order_status":[2,5,9]}},{"nested":{"p

【es】java使用es中三种查询用法from size、search after、scroll

一、三者之间的区别fromsize:深度分页或者size特别大的情况,会出现deeppagination问题。且es的自保机制max_result_window是10000,当查询数量超过一万就会报错该查询的实现原理类似于mysql中的limit,比如查询第10001条数据,那么需要将前面的1000条都拿出来,进行过滤,最终才得到数据。(性能较差,实现简单,适用于少量数据)searchaftersearch_after缺点是不能够随机跳转分页,只能是一页一页的向后翻(当有新数据进来,也能实时查询到),并且需要至少指定一个唯一不重复字段来排序(一般是_id和时间字段)当使用search_afte

springboot整合redis,MongoDB,Elasticsearch(ES)

目录 springboot整合redis连接Redis字符串操作哈希表操作列表操作集合操作有序集合操作lettcus与jedis的区别 springboot整合MongoDB新增数据查询数据更新数据删除数据 springboot整合Elasticsearch(ES)创建ElasticsearchRepository创建实体类增删改查搜索 springboot整合redisSpringBoot整合Redis,需要使用Redis的Java客户端库,通常使用Jedis或Lettuce。在使用Jedis或Lettuce时,需要在pom.xml文件中添加对应的依赖。  连接Redis使用Jedis连接R

KubeSphere(k8s)使用外部ES进行日志收集(多行日志)

环境kubesphere:v3.3.1Docker:20.10.8Fluent-Bit:2.0.6-2.0.8ES+Kibana:7.9.3Docker日志示例{"log":"2023-01-1011:32:50.021-INFO---[scheduling-1]traceId:p6spy:1|conn-0|statement|SELECTfd_idASid,fd_user_idASuserId,fd_specific_userASspecificUser,fd_home_assessmentAShomeAssessment,fd_home_assessment_timeAShomeAsses