elasticsearch
文章平均质量分 92
吃胖点儿
“学会求知,学会做事,学会共处,学会做人。”致自己共勉 。技术探讨可以加281954986
展开
-
Elasticsearch 如何实现类主流搜索引擎广告置顶显示效果?
pinned query 是 Elasticsearch 7.4.0 版本实现的增强检索功能。pinned:中文翻译为“固定”。pinned query 则可以解释为——固定某些结果首页置顶显示的检索方式。下图更能形象的说明:绿色的 Pinned results 就是要首页置顶显示的结果。转载 2021-02-23 15:01:39 · 583 阅读 · 0 评论 -
es开发之聚合数据结果不精确
1、实战开发遇到聚合问题请教一个问题,ES 在聚合的时候发生了一个奇怪的现象聚合的语句里面size设置为10和大于10导致聚合的数量不一致,这个size不就是返回的条数吗?会影响统计结果吗?dsl语句摘要(手机敲不方便,双引号就不写了):aggs:{topcount:{terms:{field:xx,size:10}}}就是这个size,设置10和大于10将会导致聚合结果不一样,难道是es5.x的bug吗?以上是实战中的真实问题,基于这个问题,有了本篇文章。本文探讨的聚合主要指:ter原创 2020-07-05 20:10:31 · 1546 阅读 · 0 评论 -
Elasticsearch分布式一致性原理剖析之节点篇
前言“Elasticsearch分布式一致性原理剖析”系列将会对Elasticsearch的分布式一致性原理进行详细的剖析,介绍其实现方式、原理以及其存在的问题等(基于6.2版本)。ES目前是最流行的分布式搜索引擎系统,其使用Lucene作为单机存储引擎并提供强大的搜索查询能力。学习其搜索原理,则必须了解Lucene,而学习ES的架构,就必须了解其分布式如何实现,而一致性是分布式系统的核心之一。本篇将介绍ES的集群组成、节点发现与Master选举,错误检测与扩缩容相关的内容。ES在处理节点发现与原创 2020-06-10 20:45:15 · 302 阅读 · 0 评论 -
Elasticsearch分布式一致性原理剖析之Meta篇
前言“Elasticsearch分布式一致性原理剖析”系列将会对Elasticsearch的分布式一致性原理进行详细的剖析,介绍其实现方式、原理以及其存在的问题等(基于6.2版本)。前一篇的内容包括了ES的集群组成、节点发现与Master选举、错误检测与集群扩缩容等。本篇将在前一篇的基础上,重点分析ES中meta更新的一致性问题,为了便于读者理解 ,本文还介绍了Master管理集群的方式、meta组成、存储方式等等。目录如下: Master如何管理集群 Meta组成、存储和恢复原创 2020-06-10 20:43:58 · 758 阅读 · 0 评论 -
剖析Elasticsearch的IndexSorting:一种查询性能优化利器厉害我的哥哥
因为IndexSorting是在ES6.0之后才作为实验性的功能加入,相关的介绍资料还比较少,所以大部分人对它不够了解。另一方面是,想要理解它为什么能够优化性能、适合哪些场景、内部如何实现、有何副作用等,也需要花一翻功夫。所以本文专门对IndexSorting进行一个介绍,并分析它的作用、实现、适用场景等。如果你的场景能用上IndexSorting,那么它肯定会给你带来一个巨大的性能提升!什么是IndexSorting?IndexSorting是ES的新功能在Elasticsearch中,Ind转载 2020-05-27 16:09:10 · 308 阅读 · 0 评论 -
SpringBoot 操作 ElasticSearch 详解(万字长文)
一、ElasticSearch 简介1、简介ElasticSearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多员工能力的全文搜索引擎,基于 RESTful web 接口。Elasticsearch 是用 Java 语言开发的,并作为 Apache 许可条款下的开放源码发布,是一种流行的企业级搜索引擎。ElasticSearch 用于云计算中,能够达到实时搜索,稳定...原创 2020-03-31 10:11:40 · 496 阅读 · 0 评论 -
Elasticsearch 之聚合
本文主要介绍 Elasticsearch 的聚合功能,介绍什么是 Bucket 和 Metric 聚合,以及如何实现嵌套的聚合。首先来看下聚合(Aggregation):什么是 Aggregation?首先举一个生活中的例子,这个是京东的搜索界面,在搜索框中输入“华为”进行搜索,就会得到如上界面,搜索框就是我们常用的搜索功能,而下面这些,比如分类、热点、操作系统、CPU 类型等是根...原创 2020-03-25 19:06:40 · 544 阅读 · 0 评论 -
es之地理位置查询
为了方便学习ES的地理位置查询,这里准备了一些地理坐标为测试数据,每一条数据都包含城市名称和地理坐标两个字段。首先把下面的内容保存到geo.json文件中:{"index":{"_index":"geo","_id":"1"}}{"city":"北京","localtion":"40.019559,116.312282"}{"index":{"_index":"geo","_id":"...原创 2020-03-08 17:52:17 · 2463 阅读 · 0 评论 -
es之高级查询
1. 复合查询复合查询就是把一些简单查询组合在一起实现更复杂的查询需求,除此之外复合查询还可以控制另外一个查询的行为。1.1 constant_scoreconstant_score query可以包装一个其他类型的查询,并返回匹配过滤器中的查询条件其具有相同评分的文档。当我们不关心检索词频率对搜索结果排序的影响时,可以使用constant_score将查询语句query或者过滤...原创 2020-03-07 10:03:11 · 1441 阅读 · 0 评论 -
es之搜索详解
Elasticesearch的核心功能是搜索,现在介绍ES的搜索API及其用法。为了有助于讲解,这里准备一些测试数据,把数据保存到文件website.json中:{"index":{"_index":"website","_id":"1"}}{"address":"北京市昌平区南丰路","province":"北京市","city":"北京市","district":"昌平区",...原创 2020-03-06 11:14:26 · 1721 阅读 · 0 评论 -
es之Mapping
Elasticsearch提供了足够多的映射参数对字段的映射进行参数设置,实现一些常用的功能,比如字段的分词器、日期格式、检索模型的选择等都是通过参数配置来完成的,下面一一介绍各个参数的用法。1. analyzeranalyzer参数用于指定文本字段的分词器,对索引和查询都有效。分词器会把文本类型的内容转换为若干个词项,查询时分词器同样会把查询字符串通过和索引时相同的分词器或其他分词器进行...原创 2020-03-05 14:40:10 · 980 阅读 · 1 评论 -
es之Setting
索引的配置项按是否可以更改分为static属性与动态属性,所谓的静态配置即索引创建后不能修改。1.索引静态配置index.number_of_shards索引分片的数量。默认值5,ES支持的最大分片数默认为1024,可以通过修改index.max_number_of_shards属性修改。index.shard.check_on_startup分片在打开之前是...原创 2020-03-04 10:26:11 · 2907 阅读 · 0 评论 -
es之java客户端API
1. 创建spring-boot项目1.1 pom.xml配置<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi...原创 2020-03-03 16:29:26 · 522 阅读 · 0 评论 -
es的索引管理
1. 索引创建PUT index { "settings":{ "number_of_shards":3, "number_of_replicas":1 }, "mappings":{ "properties":{ "title":{ "type":"text", "analyzer":"ik_max_words", "search_analyzer":"ik_smart...原创 2020-03-02 21:28:23 · 851 阅读 · 0 评论 -
es的搜索优化
1. 为文件系统cache预留足够的内存filesystem cache越大越好,为了使得搜索速度更快,ES严重依赖filesystem cache。一般来说,需要至少一般的可用内存作为filesystem cache,这样ES可以在内存中保有索引的热点区域2. 使用更快的硬件搜索一般是I/O bound的,此时,你需要:为filesystem cache分配更多的内存...原创 2020-03-01 22:20:44 · 949 阅读 · 0 评论 -
es的写入优化
文章目录Elasticsearch优化——写入优化1. translog flush间隔调整2. 索引刷新间隔refresh_interval3. 段合并优化4. indexing buffer5. 使用bulk请求5.1 bulk线程池和队列5.2 并发执行bulk请求6. 磁盘间的任务均衡7. 节点间的任务均衡8. 索引过程调整和优化8.1 自动生成doc ID8.2...原创 2020-02-29 17:48:52 · 679 阅读 · 0 评论 -
Elasticsearch的底层原理你真的懂了吗?
Elasticsearch 基于 Lucene,隐藏其复杂性,并提供简单易用的 Restful API接口、Java API 接口。所以理解 ES 的关键在于理解 Lucene 的基本原理。Lucene 简介Lucene 是一种高性能、可伸缩的信息搜索(IR)库,在 2000 年开源,最初由鼎鼎大名的 Doug Cutting 开发,是基于 Java 实现的高性能的开源项目。...原创 2020-02-15 19:56:35 · 617 阅读 · 1 评论 -
es数据备份和恢复
Elasticsearch 5.x 数据备份和恢复可由 snapshot 模块来完成,snapshot模块可以通过文件共享系统为单个索引或整个集群远程创建快照和进行数据恢复。数据备份索引快照时增量的。在创建快照前es会分析已有快照仓库,只对上次备份后更改的内容进行增量备份。在创建备份时同一个集群中只能运行一个es snapshot进程。Es 基础命令创建快照仓库curl...转载 2019-02-21 11:11:50 · 14939 阅读 · 1 评论 -
es怎么实现master选举
Elasticsearch分布式一致性原理剖析(一)-节点篇王怀远阿里云分布式NoSQL开发23 人赞了该文章前言“Elasticsearch分布式一致性原理剖析”系列将会对Elasticsearch的分布式一致性原理进行详细的剖析,介绍其实现方式、原理以及其存在的问题等(基于6.2版本)。ES目前是最流行的分布式搜索引擎系统,其使用Lucene作为单机存储引擎并提供强...转载 2019-02-21 10:30:30 · 16238 阅读 · 6 评论 -
elasticsearch的查询流程分析
我们都知道es是一个分布式的存储和检索系统,在存储的时候默认是根据每条记录的_id字段做路由分发的,这意味着es服务端是准确知道每个document分布在那个shard上的。相对比于CURD上操作,search一个比较复杂的执行模式,因为我们不知道那些document会被匹配到,任何一个shard上都有可能,所以一个search请求必须查询一个索引或多个索引里面的所有shard才能完整的查询到...转载 2019-02-21 09:43:49 · 512 阅读 · 0 评论