es
文章平均质量分 89
morris131
这个作者很懒,什么都没留下…
展开
-
Elasticsearch与Spring的集成
目前常见的Elasticsearch Java API有四类client连接方式:TransportClient(不推荐):Elasticsearch原生的api,TransportClient可以支持2.x,5.x版本,TransportClient将会在 Elasticsearch7.0弃用并在8.0中完成删除。RestClient:ES官方推荐使用。Jest(不推荐):是Java社区开发的,是Elasticsearch的Java Http Rest客户端。Spring Data Elasti原创 2021-12-04 21:26:47 · 2912 阅读 · 0 评论 -
Elasticsearch API接口介绍
容量控制_split接口_split接口可以在新索引中将每个主分片分裂为两个或更多分片,所以使用split扩容时分片总量都是成倍增加而不能逐个增加。使用split接口分裂分片虽然会创建新的索引,但新索引中的数据只是通过文件系统硬连接到新索引中,所以并不存在数据复制过程。而扩容的分片又是在本地分裂,所以不存在不同节点间网络传输数据的开销,所以split扩容效率相对其他方案来说还是比较高的。_split接口做动态扩容需要预先设置索引的number_of_routing_shards参数,Elasticse原创 2021-12-04 21:24:54 · 2824 阅读 · 0 评论 -
Elasticsearch集群的搭建与管理
主机规划:192.168.0.1(node1)192.168.0.2(node2)部署node1node1配置如下:下载https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.15.2-linux-x86_64.tar.gz后,解压。在config/jvm.options文件中增加如下内容:-Xms1g-Xmx1g在config/elasticsearch.yml文件中增加如下内容:netwo原创 2021-12-02 20:12:23 · 46260 阅读 · 0 评论 -
Elasticsearch之别名
别名,有点类似数据库的视图,别名一般都会和一些过滤条件相结合,可以做到即使是同一个索引上,让不同人看到不同的数据。别名的访问接口是_alias。创建索引时添加别名PUT test_index_v1{ "aliases": { "test_index": {} }}为已有索引添加别名put test_index_v2put test_index_v2/_alias/test_index2查询所有的别名GET _alias{ "test_index_v1" : {原创 2021-11-28 21:23:45 · 49158 阅读 · 0 评论 -
Elasticsearch之路由
什么使用路由假设有一个100个分片的索引,当一个请求在集群上执行时会发生什么呢?这个搜索的请求会被发送到集群中的一个节点上接收到这个请求的节点,将这个查询转到这个索引的每个分片上(可能是主分片,也可能是副本分片)每个分片执行这个搜索查询并返回结果结果在通道节点上合并、排序并返回给用户因为默认情况下,Elasticsearch使用文档的ID(类似于关系数据库中的自增ID),如果插入数据量比较大,文档会平均的分布于所有的分片上,这导致了Elasticsearch不能确定文档的位置,所以它必须将这原创 2021-11-28 21:22:42 · 5219 阅读 · 0 评论 -
Elasticsearch的节点与分片
前面了解了Elasticsearch能够做什么,接下来我们将见识Elasticsearch另一个很强的扩展能力,也就是Elasticsearch如何能够处理更多的索引和搜索请求,或者是更快地处理索引和搜索请求。在处理百万级甚至数十亿级的文档时,扩展性是一个非常重要的因素。 没有了某种形式的扩展,在单一的Elasticsearch运行实例或节点上就无法一直支持规模持续增大的流量。Elaticsearch很容易扩展。所以我们来了解Elasticsearch所拥有的扩展能力,以及如何使用这些特性来给予Elast原创 2021-11-28 20:34:01 · 8427 阅读 · 0 评论 -
使用SQL语言操作Elasticsearch
Elasticsearch在Basic授权中支持以SQL语句的形式检索文档,SQL语句在执行时会被翻译为DSL执行。从语法的角度来看,Elastisearch中的SQL语句与RDBMS中的SQL语句基本一致,所以对于有数据库编程基础的人来说大大降低了使用 Elaticsearch的学习成本。Elasticsearch提供了多种执行SQL语句的方法,可使用类似_search样的REST接口执行也可以通过命令行执行。它甚至还提供了JDBC和ODBC驱动来执行SQL语句,但JDBC和ODBC属于Platinum原创 2021-11-25 20:11:38 · 2121 阅读 · 0 评论 -
Elasticsearch文档内部的嵌套类型
前面所说的对象类型虽然可按JSON对象格式保存结构化的对象数据,但由于Lucene并不支持对象类型,所以 Elastiesearch在存储这种类型的字段时会将它们平铺为单个属性。例如:PUT colleges/_doc/1{ "address": { "country": "CN", "city": "BJ" }, "age": 10}在示例中的colleges文档,address字段会被平铺为address.country和address.city两个字段存储。这种原创 2021-11-20 11:06:26 · 6625 阅读 · 0 评论 -
Elasticsearch文档内部的父子关系
Elasticsearch中的父子关系是单个索引内部文档与文档之间的一种关系,父文档与子文档同属一个索引并通过父文档id建立联系, 类似于关系型数据库中单表内部行与行之间的自关联,比如有层级关系的部门表中记录之间的关联。join类型在Elasticsearch中并没有外键的概念,文档之间的父子关系通过给索引定义join类型字段实现。假设在关系型数据库中有这么一张表employes:IDnameparent1tom2smith13john1下面用El原创 2021-11-20 11:00:08 · 9034 阅读 · 1 评论 -
Elasticsearch聚集查询之管道聚集
管道聚集不是直接从索引中读取文档,而是在其他聚集的基础上再进行聚集运算。所以管道聚集可以理解为是在聚集结果上再次做聚集运算,比如求聚集结果中多个桶中某一指标的平均值、最大值等。要实现这样的目的,管道聚集都会包含一个名为buckets_path的参数,用于指定访问其他桶中指标值的路径。buckets_ path参数的值由三部分组成,即聚集名称、指标名称和分隔符。聚集名称与聚集名称之间的分隔符是“>”,而聚集名称与指标名称之间的分隔符使用“.”。按管道聚集运算来源分类,管道聚集可以分为基于父聚集结果和原创 2021-11-19 19:59:42 · 2828 阅读 · 0 评论 -
Elasticsearch聚集查询之指标聚集
聚集查询(Aggregation)提供了针对多条文档的统计运算功能,它不是针对文档本身内容的检索,而是要将它们聚合到一起运算某些方面的特征值。聚集查询与SQL语言中的聚集函数非常像,聚集函数在Elasticsearch中相当于是聚集查询的一种聚集类型。比如在SQL中的avg函数用于求字段平均值,而在Elasticsearch中要实现相同的功能可以使用avg聚集类型。聚集查询的格式聚集查询也是通过_search接口执行,只是在执行聚集查询时使用的参数是aggregations或aggs。所以_searc原创 2021-11-17 20:03:43 · 2508 阅读 · 0 评论 -
Elasticsearch之全文检索
match查询查询所有的数据GET kibana_sample_data_logs/_search{ "query": { "match_all": {} }}带条件的查询get kibana_sample_data_logs/_search{ "query":{ "match": { "message": "firefox chrome" } }}查询字符串是“firefox chrome”,被分析器分词之后,产生两个小写的单词:f原创 2021-11-17 19:58:11 · 2241 阅读 · 0 评论 -
Elasticsearch之内置分析器与自定义分析器
每个被分析字段都会经过一系列的处理步骤:字符过滤:使用字符过滤器过滤字符,如敏感词,缩写转为全写。文本切分为分词:将文本切分为单个或多个分词。分词过滤:使用分词过滤器再次过滤每个分词。每个分析器基本上都要包含上面三个步骤至少一个。其中字符过滤器可以为0个,也可以为多个,分词器则必须,但是也只能有一个,分词过滤器可以为0个,也可以为多个。Elasticsearch已经为我们内置了很多的字符过滤器、分词器和分词过滤器,以及分析器。不过常用的就是那么几个。字符过滤器(Character filte原创 2021-11-06 18:47:34 · 11741 阅读 · 0 评论 -
Elasticsearch之文本分析过程
词条(term)查询和全文(fulltext)查询最大的不同之处是:全文查询首先分析(Analyze)查询字符串,使用默认的分析器分解成一系列的分词,term1,term2,termN,然后从索引中搜索是否有文档包含这些分词中的一个或多个。所以,在基于全文的检索里,ElasticSearch引擎会先分析(analyze)查询字符串,将其拆分成小写的分词,只要已分析的字段中包含词条的任意一个,或全部包含,就匹配查询条件,返回该文档;如果不包含任意一个分词,表示没有任何文档匹配查询条件。这里就牵涉到了ES里原创 2021-11-06 18:43:36 · 12339 阅读 · 0 评论 -
Elasticsearch中基于词项的搜索
为了方便我们学习,我们导入kibana为我们提供的范例数据。目前为止,我们已经探索了如何将数据放入Elasticsearch,现在来讨论下如何将数据从Elasticsearch中拿出来,那就是通过搜索。毕竟,如果不能搜索数据,那么将其放入搜索引擎的意义又何在呢?幸运的是,Elasticsearch提供了丰富的接口来搜索数据,涵盖了Lucene所有的搜索功能。因为Elasticsearch允许构建搜索请求的格式很灵活,请求的构建有无限的可能性。要了解哪些查询和过滤器的组合适用于你的数据,最佳的方式就是进原创 2021-10-27 21:26:40 · 4439 阅读 · 0 评论 -
Elasticsearch中索引和文档的管理
索引的管理创建索引输入:put manage-test输出:{ "acknowledged" : true, "shards_acknowledged" : true, "index" : "manage-test"}{ "acknowledged" : true, "shards_acknowledged" : true, "index" : "manage-test"}查看所有索引输入:get /_cat/indices?v输出:health stat原创 2021-10-24 20:57:09 · 5312 阅读 · 0 评论 -
ELK入门与基本概念
什么是ELKELK是三个开源软件的缩写,分别表示:ElasticsearchLogstashKibanaElasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。Logstash主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行原创 2021-10-24 09:10:58 · 4298 阅读 · 0 评论 -
ElasticSearch与Kibana的安装
Ubuntu下的安装安装ElasticSearch参考:https://www.elastic.co/guide/en/elasticsearch/reference/7.14/deb.html1、下载apt-key$ wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -2、安装https$ sudo apt-get install apt-transport-https3、设置原创 2021-10-11 20:37:40 · 3473 阅读 · 0 评论