
ElasticSearch
文章平均质量分 84
努力的布布
花有重开日,人无再少年。
展开
-
Elasticsearch-搜索推荐:Suggest
搜索一般都会要求具有“搜索推荐”或者叫“搜索补全”的功能,即在用户输入搜索的过程中,进行自动补全或者纠错。以此来提高搜索文档的匹配精准度,进而提升用户的搜索体验,这就是Suggest。原创 2024-12-31 14:31:30 · 1300 阅读 · 0 评论 -
Elasticsearch-模糊查询
match_phrase_prefix与match_phrase相同,但是它多了一个特性,就是它允许在文本的最后一个词项(term)上的前缀匹配,如果 是一个单词,比如a,它会匹配文档字段所有以a开头的文档,如果是一个短语,比如 “this is ma” ,他会先在倒排索引中做以ma做前缀搜索,然后在匹配到的doc中做match_phrase查询,(网上有的说是先match_phrase,然后再进行前缀搜索, 是不对的)在提供的JSON中,“mappings"字段的作用是指定索引的映射定义。原创 2024-12-26 19:06:28 · 2490 阅读 · 0 评论 -
Elasticsearch-索引的批量操作
如果在PUT数据的时候当前数据已经存在,则数据会被覆盖,如果在PUT的时候加上操作类型create,此时如果数据已存在则会返回失败,因为已经强制指定了操作类型为create,ES就不会再去执行update操作。比如:PUT /pruduct/_create/1/ ( 老版本的语法为 PUT /pruduct/_doc/1/_create )指的就是在索引product中强制创建id为1的数据,如果id为1的数据已存在,则返回失败。:删除文档,ES对文档的删除是懒删除机制,即标记删除。原创 2024-12-26 12:34:33 · 640 阅读 · 0 评论 -
Elasticsearch-脚本查询
早先某些版本正则表达式默认情况下处于禁用模式,因为它绕过了painless的针对长时间运行和占用内存脚本的保护机制。而且有深度对战行为。如果需要开启正则,需要配置:script.painless.regex.enabled: true注意:通常正则的使用范围比较小,应用范围基本限制在数据量比较小和并发量比较小的应用场景下。原创 2024-12-24 15:56:41 · 1323 阅读 · 0 评论 -
Elasticsearch-聚合查询
percentile_ranks: percentile rank 其实就是percentiles的反向查询,比如我想看一下 1000、3000 在当前数值中处于哪一个范围内,你查一下它的 rank,发现是95,99,那么说明有95%的数值都在1000以内,99%的数值都在3000以内。管道聚合(Pipeline agregations):用于对聚合的结果进行二次聚合,如要统计绑定数量最多的标签bucket,就是要先按照标签进行分桶,再在分桶的结果上计算最大值。原创 2024-12-23 19:57:46 · 1041 阅读 · 0 评论 -
Elasticsearch-分词器详解
1、分词器介绍对文本进行分析处理的一种手段,基本处理逻辑为按照预先制定的分词规则,把原始文档分割成若干更小粒度的词项,粒度大小取决于分词器规则。常用的中文分词器有ik按照切词的粒度粗细又分为:ik_max_word和ik_smart;英文分词器standard会将文本做最细粒度的拆分,会穷尽各种可能的组合,适合 Term Query;ik_smart:会做最粗粒度的拆分,适合 Phrase 查询"text": ["布布努力学习编程"]"token" : "布",},原创 2024-12-18 16:24:03 · 976 阅读 · 0 评论 -
Elasticsearch-DSL高级查询操作
在构造mapping映射的时候,对text类型的字段指定了"analyzer":"ik_max_word"分词器,这里用的是IK分词器,插入数据会对该字段进行分词,建立倒排索引。query match 这个name会被分词 name是txt类型 会被分词 所以搜索条件被分词后会和这个查询字段的词项进行匹配 匹配到的都返回。name是text类型字段,name.keyword做为查询条件不会进行分词,直接和索引数据中的name进行匹配,id为3的数据可以查询匹配。原创 2024-12-18 10:14:50 · 1381 阅读 · 0 评论 -
Elasticsearch:Mapping-映射
根据put创建索引赋值的时候每个字段的数据,动态的生成了字段的属性,可以类比mysql的表结构的字段属性,这里重点介绍一下text类型,即文本类型,在创建索引的时候,如果是text类型的,那么会对这个字段进行索引,生成倒排索引进行存储,后续查询的时候,如果查询方式也支持对搜索的内容进行索引分词,那么就会把搜索条件分词后的词项和生成索引的时候索引的列的词项进行匹配。原创 2024-12-13 17:00:18 · 1127 阅读 · 0 评论 -
Windows环境下,SpringBoot项目集成ELK日志分析平台教程
Windows环境下,SpringBoot项目集成ELK日志分析平台教程**环境准备:**1.windows电脑,idea,JDK,elasticsearch,kibana,logstash原创 2021-02-25 22:29:17 · 791 阅读 · 0 评论 -
Elasticsearch:下载安装Elasticsearch集群及集群的健康值检查
下载安装Elasticsearch下载地址:https://www.elastic.co/cn/downloads/elasticsearch可以下载历史版本目录结构:如果不修改data和logs目录,更新es的版本可能会把这两个文件覆盖造成数据丢失配置集群下载一个然后解压缩复制两份修改三个节点config下的elasticsearch.yml配置文件1、node01的yml文件:# =================es集群配置==============# # 配置es集群的原创 2022-05-29 00:08:53 · 553 阅读 · 0 评论 -
Elasticsearch:倒排索引的两种压缩算法:FOR算法和RBM算法
位(bit)、字节(Byte)、MB(兆位)之间的换算关系在java基本数据类型中,一个int是4个字节,也就是32个比特位;一个short类型占用的是2个字节也就是16个字节B是Byte的缩写,B就是Byte,也就是字节(Byte);b是bit的缩写,b就是bit,也就是比特位(bit)。B与b不同,注意区分,KB是千字节,Kb是千比特位。1MB(兆字节) = 1024KB(千字节)= 1024*1024B(字节) = 1048576B(字节);8bit(比特位)= 1Byte(字节);原创 2022-05-28 21:09:58 · 2221 阅读 · 1 评论 -
Elasticsearch:倒排索引
什么是索引?学习过MySql的都知道,索引底层的数据结构是B+树,B+树作为索引底层数据结构的实现方式在提高查询速度方面有着很大的优势。B树根节点和叶子结点都存储data数据就导致每个page页存储的数量少B+树只有根节点存储的有数据,叶子结点只存储的是主键和子节点的内存地址信息 叶子结点数据连续的B+ 树数据块能存放的数量更多 深度降低 每次查询都是一次IO 所以会减低系统读取的IO次数从而来减少查询时间创建索引的时候要选字段小的建立 这样数据页存储的数据多 深度会降低什么是倒排索引倒排原创 2022-05-28 16:49:38 · 389 阅读 · 0 评论