
ES
文章平均质量分 92
luu_一只程序猿
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Elasticsearch 倒排索引的理解
但是实际的情况是,term未必都是英文字符,term可以是任意的byte数组。遍历的过程可以跳过一些元素,比如我们遍历到绿色的13的时候,就可以跳过蓝色的3了,因为3比13要小。使用了嵌套文档之后,对于term的posting list只需要保存父文档的doc id就可以了,可以比保存所有的数据点的doc id要少很多。简单的结论是:因为Frame of Reference编码是如此 高效,对于简单的相等条件的过滤缓存成纯内存的bitset还不如需要访问磁盘的skip list的方式要快。转载 2025-04-29 12:12:18 · 49 阅读 · 0 评论 -
ES相关面试问题整理
索引模板,一种复用机制,就像一些项目的开发框架如 Laravel 一样,省去了大量的重复,体力劳动。当新建一个 Elasticsearch 索引时,自动匹配模板,完成索引的基础部分搭建。模板定义,看似复杂,拆分来看,主要为如下几个部分:"order": 0, // 模板优先级"template": "sample_info*", // 模板匹配的名称方式"settings": {...}, // 索引设置。原创 2023-10-12 10:42:25 · 1494 阅读 · 0 评论 -
ES的Search流程过程理解
GET操作只能对单个文档进行处理,由_index、_type和_id三元组来确定唯一文档。但搜索需要一种更复杂的模型,因为不知道查询会命中哪些文档。找到匹配文档仅仅完成了搜索流程的一半,因为多分片中的结果必须组合成单个排序列表。集群的任意节点都可以接收搜索请求,接收客户端请求的节点称为协调节点。在协调节点,搜索任务被执行成一个两阶段过程,即query then fetch。真正执行搜索任务的节点称为数据节点。需要两个阶段才能完成搜索的原因是,在查询的时候不知道文档位于哪个分片,因此索引的所有分片(某转载 2021-01-12 15:47:23 · 4274 阅读 · 0 评论 -
ES的GET流程理解以及思考
GET流程ES的读取分为GET和Search两种操作,这两种读取操作有较大的差异,GET/MGET必须指定三元组:_index、_type、_id。也就是说,根据文档id从正排索引中获取内容。而Search不指定_id,根据关键词从倒排索引中获取内容。一个GET请求的简单例子,如下:curl -XGET http://127.0.0.1:9200/secisland/_doc/1?pretty响应:{ "_index": "secisland", "_type": "_doc",转载 2020-12-18 16:28:52 · 3085 阅读 · 0 评论 -
理解Elasticsearch写入过程原理
1. lucene的写操作及其问题Elasticsearch底层使用Lucene来实现doc的读写操作,Lucene通过public long addDocument(...);public long deleteDocuments(...);public long updateDocument(...);三个方法来实现文档的写入,更新和删除操作。但是存在如下问题没有并发设计 lucene只是一个搜索引擎库,并没有涉及到分布式相关的设计,因此要想使用Lucene来处理海量数据,并利用原创 2020-12-14 20:44:41 · 1853 阅读 · 1 评论 -
ES的滚动搜索
游标查询Scroll滚动搜索API,即Search Scroll API,可通过搜索请求,获取大量搜索结果。滚动搜索有点类似于数据库中的分页查询。ES对于from+size的个数是有限制的,二者之和不能超过1w。当所请求的数据总量大于1w时,可用scroll来代替from+size。如果一次性要查出来比如10万条数据,那么性能会很差,此时一般会采取用scoll滚动查询,一批一批的查,直到所有数据都查询完处理完。scroll查询 可以用来对 Elasticsearch 有效地执行大批量..原创 2020-12-11 16:49:05 · 1764 阅读 · 0 评论 -
索引分词器
了解Elasticsearch分词的原理、过程,以及如何添加新的分词器等,同时插件相关知识,及其功能与安装等。分词器的概念在Elasticsearch中,索引分析模块是可以通过注册分词器(analyzer)来进行配置。分词器的作用是当一个文档被索引的时候,分词器从文档中提取出若干词元(token)来支持索引的存储和搜索。分词器(omalyzer)是由一个分解器(tokenizer)、零个或多个词元过滤器(token filters)组成。分解器处理前可能要做一些预处理,比如去掉里面的HTML原创 2020-12-09 15:37:54 · 801 阅读 · 0 评论 -
ES搜索和DSL
前面主要介绍了Elasticsearch的索引和映射,但这两个内容只解决存储的问题,在使用Elasticsearch的时候,大部分是和搜索相关的内容。现在开始介绍Elasticsearch的搜索功能,通过学习详细了解搜索的语法和查询专用语言(DSL)的相关知识。深入搜索搜索方式1.URL参数搜索请求:GET http://127.0.0.1:9200/secislan/_search?参数,多个参数用&分开。2.POST请求参数搜索请求:POST http://127原创 2020-12-02 16:08:17 · 1061 阅读 · 0 评论 -
ES映射的使用
映射是定义存储和索引的文档类型以及字段的过程。索引中的每一个文档都有一个类型,每种类型都有它自己的映射。一个映射定义了文档结构内每个字段的数据类型。映射通过配置来定义字段类型与该类型相关联的元数据的关系。例如,可以通过映射来定义日期类型的格式、数字类型的格式或者文档中所有字段的值是否应该被_all字段索引等。本章将介绍映射的概念、参数,以及动态映射的使用等。概念1.映射类型每个索引拥有一个或多个映射类型,用来在索引中将文档划分为不同的逻辑组。每个映射类型拥有:□元字段:用来定义如何处理原创 2020-12-01 23:41:14 · 1631 阅读 · 0 评论 -
ES索引理解
索引创建索引创建索引的时候可以通过修改number_of_shards和number_of_replicas参数的数量来修改分片和副本的数量。在默认的情况下分片的数量是5个,副本的数量是1个。例如,创建三个主分片,两个副本分片的索引。请求:PUT http://127.0.0.1:9200/secisland/参数:后面可以通过update-index-settings API完成对副本数量的修改。例如请求:PUT http://127.0.0.1:9200/secis原创 2020-12-01 22:37:59 · 2225 阅读 · 0 评论 -
ES高级客户端文档操作实战
在Elasticsearch中,高级客户端支持以下文档相关的API:(1)Single document APIs——单文档操作API。(2)Index API——文档索引API。(3)Get API——文档获取API。(4)Exists API——文档存在性判断API。(5)Delete API——文档删除API。(6)Update API——文档更新API。(7)Term Vectors API——词向量API。(8)Bulk API——批量处理API。(9)Multi-Get API——多文档获取原创 2020-12-01 15:04:16 · 3738 阅读 · 1 评论 -
ElasticSearch入门,高级客户端了解
上一篇我们对elasticsearch的基本概念有了一些了解,然后我们需要懂一些基本操作。对外接口1 创建索引库在请求URL中输入:http://127.0.0.1:9200/secisland?pretty。在请求的方法中选择PUT,创建索引库示意图点击Request按钮后可以在右边看到返回的内容如下,表示建库成功:执行完建库后查询一下库的状态,有两种方式查看,如果用命令查看,可以在浏览器中执行http://127.0.0.1:9200/_cat/indices?v.原创 2020-11-30 16:34:42 · 822 阅读 · 0 评论 -
Elasticsearch术语及概念熟悉
想要学好、用好Elasticsearch,首先要了解其核心概念、名词和属性。这就好比想要看懂地图,首先要知道地图里常用的标记符号一样。Elasticsearch的核心概念有索引词(term)、节点(Node)、集群(Cluster)、Shards、Replicas、Index、Type、Document、Settings、Mapping和Analyzer,其含义分别如下所示。1.索引词(term)在Elasticsearch中索引词(term)是一个能够被索引的精确值。foo、Foo、FOO几个原创 2020-11-30 10:05:42 · 1184 阅读 · 0 评论 -
ES在linux上安装操作
Elasticsearch 是一个分布式可扩展的实时搜索和分析引擎,一个建立在全文搜索引擎 Apache Lucene(TM) 基础上的搜索引擎.当然 Elasticsearch 并不仅仅是 Lucene 那么简单,它不仅包括了全文搜索功能,还可以进行以下工作:分布式实时文件存储,并将每一个字段都编入索引,使其可以被搜索。 实时分析的分布式搜索引擎。 可以扩展到上百台服务器,处理PB级别的结构化或非结构化数据Elasticsearch具备以下特点:分布式,无需人工搭建集群(solr就需要人为配转载 2020-11-26 11:32:27 · 1010 阅读 · 0 评论