elasticsearch
文章平均质量分 72
Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。
王stone
尽人事,知天命!但行好事,莫问前程!
展开
-
Elasticsearch 入门到精通-Elasticsearch核心倒排索引数据结构
如图所示B-Tree+整体分区法查找7的时候,只需3次就能找到,相当于“三分法”一样比二分法更加的有效率,但是如果数据每次“三分”时都处于中间,那就无形的增加了判断次数(这种做法,拿要检索的值7和中间块的两头6和11比较),但是这只是极少的数据而已,在海量的数据面前,这数据更是微不足道,所以根据二八定律,它基本上能满足搜索更快的需求。因此就有了Term Index,它就像字典里一个更大的章节一样,每个大的章节再对应着多个小的章节Term Dictionary,这样就能实现速的找到某个term。原创 2023-01-31 11:25:19 · 893 阅读 · 0 评论 -
Elasticsearch-5.2.2添加x-park认证(离线安装)
Elasticsearch-5.2.2添加x-park认证(离线安装)原创 2022-07-09 18:35:52 · 1356 阅读 · 0 评论 -
Elasticsearch-5.2.2单机安装,部署步骤和各种坑及解决方法
Elasticsearch-5.2.2单机安装,部署步骤和各种坑及解决方法原创 2022-07-09 18:03:23 · 1001 阅读 · 0 评论 -
Elasticsearch 入门到精通-ElasticSearch技术原理之倒排索引的数据结构
Elasticsearch倒排索引原创 2022-06-30 17:55:02 · 813 阅读 · 0 评论 -
SpringBoot 项目引入 elasticsearch-rest-high-level-client 报 “Elasticsearch health check failed ...” 错
问题描述近期在做一个数据抓取的服务(SpringBoot),底层采用阿里云Elasticsearch,当我在该服务中引入 elasticsearch-rest-high-level-client jar 包,启动 Application 的过程中,出现如下报错信息:java.net.ConnectException: Timeout connecting to [localhost/127.0.0.1:9200] at org.elasticsearch.client.RestClient.ext原创 2022-05-30 19:23:10 · 2730 阅读 · 0 评论 -
Elasticsearch 入门到精通-IP 数据类型及其搜索
在使用 Elasticsearch 搜索 IP 地址时,我们可以把数据类型定义为 IP 数据类型。这样我们可以针对 IP 地址进行搜索。这种 IP 地址可以是 IPv4 或者是 IPv6 的形式。现在假设我们导入一个如下的数据到 Elasticsearch 中:PUT my-index/_doc/1{ "ip_addr": "192.168.1.1"}在没有定义数据类型的情况下, Elasticsearch 会把上面的字段 ip_add 映射到一个 text 及 keyword 的...原创 2022-05-13 15:34:58 · 1094 阅读 · 1 评论 -
Elasticsearch 入门到精通-Elasticsearch 滞后8个小时等时区问题
一、实战问题如下都是实战环节遇到的问题: logstash谁解决过时区问题,mysql是东八区shanghai 但是这玩意读完存到es就少了8小时? 目前索引会比真正时间晚8小时,导致8点前的日志写到昨天索引里,大佬们有招吗? 问一下 logstash输出日志到本地文件中,按照小时生成索引,但是他这边的时区是utc,生成的时间和北京时间少8小时,这一块大佬们是咋操作的? ......从浏览器kibana那里看timestamp时间戳变成了utc的时区? 上面的问题原创 2022-05-12 14:51:40 · 1140 阅读 · 0 评论 -
Elasticsearch 入门到精通-时间日期类型
日期类型(Date datatype)JSON 没有日期类型,因此在Elasticsearch中可以表达成:日期格式化的字符串,比如: “2015-01-01” 或者 “2015/01/01 12:10:30”; 毫秒级别的 long 类型 秒级别的 integer 类型,比如: 1515150699465, 1515150699;实际上不管日期以何种格式写入,在 ES 内部都会先换成 UTC 时间并存储为 long 类型。date类型在 Elasticsearch 展示的格式...原创 2022-04-29 17:43:26 · 3208 阅读 · 0 评论 -
Elasticsearch 入门到精通- —— Mapping参数boost、coerce、copy_to、doc_values、dynamic、
boost在查询时,各个字段可以自动提升 - 更多地依赖于相关性得分,boost参数如下:PUT my_index{ "mappings": { "_doc": { "properties": { "title": { "type": "text", "boost": 2 }, "content": { "type": "text" } }...原创 2022-03-30 09:44:13 · 921 阅读 · 0 评论 -
Elasticsearch 入门到精通-滚动查询(scroll)
Search 请求返回一个单一的结果“页”,而 scroll API 可以被用来检索大量的结果(甚至所有的结果),就像在传统数据库中使用的游标 cursor。滚动并不是为了实时的用户响应,而是为了处理大量的数据,例如,为了使用不同的配置来重新索引一个 index 到另一个 index 中去。注意:从 scroll 请求返回的结果反映了 search 发生时刻的索引状态,就像一个快照。后续的对文档的改动(索引、更新或者删除)都只会影响后面的搜索请求。为了使用 s...原创 2022-01-26 14:18:50 · 2273 阅读 · 0 评论 -
Elasticsearch 入门到精通-Ansj分词器的安装和使用
Elasticsearch 分词插件 ansj 从安装到使用原创 2022-01-24 15:39:55 · 2433 阅读 · 0 评论 -
Elasticsearch 入门到精通-Hanlp分词器的安装和使用
Elasticsearch 入门到精通-Hanlp分词器的安装和使用原创 2022-01-24 14:31:20 · 5160 阅读 · 1 评论 -
Elasticsearch 入门到精通-Elasticsearch IK自动热更新原理与实现
一、热更新原理 elasticsearch开启加载外部词典功功能后,会每60s间隔进行刷新字典。具体原理代码如下所示:public void loadDic(HttpServletRequest req,HttpServletResponse response){ String eTag =req.getParameter("If-None-Match"); try { OutputStream out= response.getOutputStream();原创 2022-01-19 09:06:52 · 671 阅读 · 0 评论 -
Elasticsearch 入门到精通-Elasticsearch 分词器
Elasticsearch 入门到精通-Elasticsearch 分词器原创 2022-01-12 09:35:49 · 650 阅读 · 0 评论 -
Elasticsearch 入门到精通-Elasticsearch集成中文分词IK
1、IK的介绍Elasticsearch IK分析器插件是国内非常著名的开源中文分析器插件,它是基于国人所开发的另一款基于Luence 的IK分词器做的扩展,以达到对Elasticsearch的支持。Elasticsearch IK分词器是Java语言编写的,在Elasticsearch 0.16的时候就已经开始对其支持了,涵盖了Elasticsearch后续各版本的支持。ik分词器包括了ik_smart和ik_max_word两种分析器,包括了与两种分析...原创 2021-12-20 16:38:12 · 557 阅读 · 0 评论 -
Elasticsearch 入门到精通-Elasticsearch为什么只能分配最大内存32G
不分配大内存给 Elasticsearch,事实上 jvm 在内存 < 32G 的时候会采用一个:内存对象指针压缩技术。 需要明白:不一定是 32GB,一般 linux 系统上都是介于 (31, 32),所以为了安全起见我们统一都可以设置为 31GB。 在 java 中,所有的对象都分配在堆上,然后有一个指针引用它。指向这些对象的指针大小通常是CPU的字长大小,不是 32bit 就是 64bit,这取决于你的处理器,指针指向了你的值的精确位置。 对于32位系统,内存最大可使用4G。原创 2021-12-13 15:21:38 · 2337 阅读 · 0 评论 -
Elasticsearch 入门到精通-Elasticsearch查询原理Query-Fetch分析
Elasticsearch查询原理原创 2021-12-08 18:26:28 · 1627 阅读 · 0 评论 -
Elasticsearch 入门到精通-Elasticsearch数据查询
Elasticsearch数据写入(写入实战)原创 2021-12-07 19:16:12 · 490 阅读 · 0 评论 -
Elasticsearch 入门到精通-Elasticsearch数据写入
创建索引通过以下命令可创建一个索引:PUT job{ "settings":{ "index":{ "number_of_shards":5, "number_of_replicas":1 } }}返回:{ "acknowledged": true, "shards_acknowledged": true}Elasticsearch 是利用分片将数据分发到集群内各处的。分片是数据的容器,文档保存在分片内,分片又被分配到集原创 2021-11-27 15:58:10 · 1560 阅读 · 0 评论 -
Elasticsearch 入门到精通-Elasticsearch数据写入(写入流程)
Elasticsearch数据写入流程原创 2021-11-22 22:16:09 · 4504 阅读 · 0 评论 -
Elasticsearch 入门到精通-Elasticsearch Dynamic templates(动态模板实战)
在elasticsearch中,如果你有一类相似的数据字段,想要统一设置其映射,就可以用到一项功能:动态模板映射(dynamic_templates)。每个模板都有一个名字用于描述这个模板的用途,一个mapping字段用于指明这个映射怎么使用,和至少一个参数(例如match)来定义这个模板适用于哪个字段。参数: match_mapping_type允许你只对特定类型的字段使用模板,正如标准动态映射规则那样,比如string,long等。 match(unmatch相反)参数只会...原创 2021-11-21 16:24:36 · 1003 阅读 · 0 评论 -
Elasticsearch 入门到精通-Elasticsearch Dynamic templates(动态模板原理)
Elasticsearch动态模板原创 2021-11-20 21:47:44 · 2102 阅读 · 0 评论 -
Elasticsearch 入门到精通-Elasticsearch创建索引
elasticsearch创建索引原创 2021-11-19 21:01:57 · 3833 阅读 · 0 评论 -
Elasticsearch 入门到精通-Elasticsearch节点类型以及各种节点的分工
Elasticsearch目前支持五种节点,每种节点都各自分工不通。这里主要讲下工作中常用的节点类型,配置以及应用1、主节点(或者候选主节点) 一个ES节点启动后,使用Zen Discovery 机制去寻找集群中的其他节点,并与之建立连接。集群中从候选主节点中选举出一个主节点。主节点负责创建索引,删除索引,分配分片,追踪集群中其他节点的状态等工作。 正常情况下,集群中所有的节点对主节点的选择是一致的,即一个集群中只能有一个主节点。然而在某些情况下,如...原创 2021-11-17 22:12:16 · 1821 阅读 · 0 评论 -
Elasticsearch 入门到精通-Elasticsearch.yml基本配置说明
Elasticsearch配置文件说明原创 2021-11-17 21:59:43 · 262 阅读 · 0 评论 -
Elasticsearch 入门到精通-(Mapping数据类型)
Elasticsearch数据类型原创 2021-11-17 21:51:21 · 1316 阅读 · 0 评论 -
Elasticsearch 入门到精通-(索引、文档、Mapping)
一、索引(index)二、文档(document)三、类型(type)四、映射(mapping)原创 2021-11-17 21:19:37 · 3104 阅读 · 0 评论 -
Elasticsearch 入门到精通-(节点、集群、分片)
ElasticSearch 特性ElasticSearch是一个高性能,高可用,易扩展的分布式搜索引擎。其高可用体现在:服务可用性:允许有节点停止服务,整个ElasticSearch集群必须正常对外提供服务(冗余节点)数据可用性:允许部分节点丢失,但是数据不会丢失(冗余数据)其可扩展性体现在:请求量提升/数据的不断增长(将数据分布到所有节点上)(新增节点就能提供读写能力)ElasticSearch分布式架构的好处存储的水平扩容提高可用性ElasticSearch不同的集群通过原创 2021-11-14 16:42:54 · 1282 阅读 · 0 评论 -
Elasticsearch 入门到精通-ElasticSearch技术原理之分片(一)
分片是什么?简单来讲就是咱们在ES中所有数据的文件块,也是数据的最小单元块,整个ES集群的核心就是对所有分片的分布、索引、负载、路由等操作分片可以是主分片(primary shard)或者是副本分片(replica shard)。number_of_shards 每个索引的主分片数,默认值是 5 。这个配置在索引创建后不能修改。 number_of_replicas 每个主分片的副本数,默认值是 1 。对于活动的索引库,这个配置可以随时修改。例子:如创建一个 blogs 的索引,五个主分原创 2021-11-14 15:44:28 · 839 阅读 · 0 评论 -
Elasticsearch 入门到精通-Elasticsearch中的一些重要概念:cluster, node, index, document, shards及replica
首先,我们来看下一下如下的这个图:ClusterCluster也就是集群的意思。Elasticsearch集群由一个或多个节点组成,可通过其集群名称进行标识。通常这个Cluster 的名字是可以在Elasticsearch里的配置文件中设置的。在默认的情况下,如我们的Elasticsearch已经开始运行,那么它会自动生成一个叫做“elasticsearch”的集群。我们可以在config/elasticsearch.yml里定制我们的集群的名字一个Elasticsearch的集群就像是下面的一原创 2020-10-09 21:14:01 · 658 阅读 · 0 评论 -
Elasticsearch 入门到精通-Elasticsearch的doc写入流程,rebalance流程
elasticsearch写入数据时涉及到的核心概念讲解:segment file: 存储倒排索引的文件,每个segment本质上就是一个倒排索引,每秒都会生成一个segment文件,当文件过多时es会自动进行segment merge(合并文件),合并时会同时将已经标注删除的文档物理删除;commit point(重点理解): 记录当前所有可用的segment,每个commit point都会维护一个.del文件(es删除数据本质是不属于物理删除),当es做删改操作时首先会在.del文件中声明某个..原创 2021-04-02 22:08:01 · 693 阅读 · 0 评论 -
Elasticsearch 入门到精通-ElasticSearch技术原理之基本概念
索引(Index)ES将数据存储于一个或多个索引中,索引是具有类似特性的文档的集合,类比传统关系型数据库的一个数据库(database),或者一个数据存储方案(schema)。索引由其名称(必须全小写字符)进行标识,并通过引用此名称完成文档的创建、搜索、更新及删除操作。类型(Type)类型是索引内部的逻辑分区(category/partition),一个索引内部可定义一个或多个类型(type)。类比传统关系型数据库的一张表。文档(Document)文档是索引和搜索的原子单位,它是包含了一原创 2021-04-02 21:51:11 · 184 阅读 · 0 评论 -
Elasticsearch 入门到精通-ElasticSearch7.6.2安装步骤以及一些常见错误记录
前提准备工作:安装好 jdk1.81.下载安装包资源https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.6.2-linux-x86_64.tar.gz2.解压tar -zxvf elasticsearch-7.6.2-linux-x86_64.tar.gz3.启动cd elasticsearch-7.6.2./elasticsearch这个时候第一个问题就出现了,ES默认不允许root用户直接启原创 2020-10-09 20:18:30 · 868 阅读 · 1 评论 -
Elasticsearch 入门到精通-Elasticsearch7.6.2 集群部署、集群认证及使用
参照Elasticsearch 单节点配置,准备好配置环境1、elasticsearch.yml配置:node.name区别:elastic_node1、 elastic_node2、 elastic_node3cluster.name: elastic_clusternode.name: elastic_node1node.master: truenode.data: true#path.data: /usr/local/elastic_node1/data#path.logs原创 2020-10-09 20:35:26 · 1455 阅读 · 1 评论 -
Elasticsearch 入门到精通-Elasticsearch 概念理解-节点角色
es节点角色划分,在Elasticsearch中,有很多角色,常用的角色有如下:Master Node:主节点Master eligible nodes:合格节点Data Node:数据节点Coordinating Node:协调节点Ingest Node:ingest节点machine learning:机器学习节点Master Node:主节点,该节点不和应用创建连接,每个节点都保存了集群状态,master节点不占用磁盘IO和CPU,内存使用量一般。 Master eligi.原创 2020-10-09 21:03:35 · 1124 阅读 · 0 评论 -
Elasticsearch 入门到精通-elasticsearch-5.1.2集群安装,部署步骤和各种坑及解决方法
elasticsearch-5.1.2 安装,部署1.准备好3个安装文件部署elasticsearch-head-master该项目,可以查看elasticsearch的状态apache-tomcat-8.5.9.tar.gzelasticsearch-5.1.2.tar.gzelasticsearch-head-master.zip2.原创 2017-04-25 18:52:17 · 723 阅读 · 0 评论 -
Elasticsearch 入门到精通-ElasticSearch技术原理之倒排索引
为什么需要倒排索引倒排索引,也是索引。索引,初衷都是为了快速检索到你要的数据。每种数据库都有自己要解决的问题(或者说擅长的领域),对应的就有自己的数据结构,而不同的使用场景和数据结构,需要用不同的索引,才能起到最大化加快查询的目的。对 Mysql 来说,是 B+ 树,对 Elasticsearch/Lucene 来说,是倒排索引。...原创 2021-11-13 21:58:43 · 1019 阅读 · 0 评论 -
Elasticsearch 查询案例解析-ES求中位数
中位数的计算:(1)首先要先排序(从小到大),然后计算中位数的序号,分数据为奇数个与偶数个两种来求.(2)中位数算出来可避免极端数据,代表着数据总体的中等情况。(3)如果总数个数是奇数的话,按从小到大的顺序,取中间的那个数(4)如果总数个数是偶数个的话,按从小到大的顺序,取中间那两个数的平均数1、创建一个测试索引PUT test{ "settings": { "number_of_shards": 5, "number_of_replicas": 0 }, ...原创 2021-11-08 16:31:59 · 1373 阅读 · 0 评论