elasticsearch 7.17 索引模板
文章目录
- 概要
概要
模板
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.introns.framework.es.builder.OperationsBuilder;
import java.util.HashMap;
import java.util.Map;abstract class AbstractBuilder<T extends AbstractBuilder<T>> {protected final Map<String, Object> map;protected final OperationsBuilder builder;protected AbstractBuilder(OperationsBuilder builder) {this.map = new HashMap<>();this.builder = builder;}protected abstract T self();public OperationsBuilder unwrap() {return builder;}public T set(String key, Object value) {if (StrUtil.isNotBlank(key) && ObjectUtil.isNotEmpty(value)) {map.put(map, value);}return this.self();}public Map<String, Object> build() {return map;}
}
import cn.introns.framework.es.builder.OperationsBuilder;
import lombok.extern.slf4j.Slf4j;/*** SettingsBuilder<br>* <a* href='https://www.elastic.co/guide/en/elasticsearch/reference/7.17/index-modules.html#index-modules-settings'>elasticsearch* 7.17 document</a>* @since 3.0.2*/
@Slf4j
public class SettingsBuilder extends AbstractBuilder<SettingsBuilder> {@Overrideprotected SettingsBuilder self() {return this;}public SettingsBuilder(OperationsBuilder builder) {super(builder);}// static index settings/*** 设置分片数量<br>** <ul>* <li>索引应具有的主分片数。默认为1。此设置只能在索引创建时设置。它不能在已关闭的索引上更改* <li>每个索引的分片数量限制为1024个。此限制是一个安全限制,用于防止意外创建索引,这些索引可能会因资源分配而破坏集群的稳定。可以通过在属于集群的每个节点上指定export* ES_JAVA_OPTS=“-Des.index.max_number_of_shard=128”系统属性来修改限制* </ul>** @param value 分片数量* @return {@link SettingsBuilder}*/public SettingsBuilder setNumberOfShards(int value) {if (value < 0 || value > 1024) {log.warn("number_of_shards value range [1, 1024], current value {}, do not set", value);return this;}return this.set("number_of_shards", value);}/*** 此设置的默认值取决于索引中主分片的数量。默认设置允许您按2的倍数分割,最多可分割1024个分片<br>** @param value 分片数量* @return {@link SettingsBuilder}*/public SettingsBuilder setNumberOfRoutingShards(int value) {if (value < 2 || value > 1024) {log.warn("number_of_routing_shards value range [2, 1024], current value {}, do not set", value);return this;}return this.set("number_of_routing_shards", value);}/*** 用于定义索引数据在磁盘上的压缩算法,默认值 LZ4** @param value 压缩算法* @return {@link SettingsBuilder}*/public SettingsBuilder setCodec(String value) {return this.set("codec", value);}/*** 平衡数据分布优化查询性能<br>* 取值范围<code>1 <= routing_partition_size < number_of_shards</code>** <ul>* <li>默认情况下,使用自定义路由的文档会根据路由值的哈希结果分配到唯一主分片,可能导致数据倾斜* <li>通过设置该值,相同路由值的文档会被分散到多个分片中,缓解数据集中问题* </ul>** @param value 值* @return {@link SettingsBuilder}*/public SettingsBuilder setRoutingPartitionSize(int value) {if (value < 0 || value >= 1024) {log.warn("routing_partition_size value range [1, number_of_shards), current value {}, do not set",value);return this;}return this.set("routing_partition_size", value);}/*** 控制索引软删除功能<br>* 适用版本<code>6.5.0 ~ 7.6.0</code>** @param value 值* @return {@link SettingsBuilder}*/@Deprecatedpublic SettingsBuilder setSoftDeletesEnabled(boolean value) {return this.set("soft_deletes.enabled", value);}/*** 控制软删除记录保留时间,默认值 12h<br>* 单位支持 h(时) | m(分) | s(秒)<br>* 适用版本<code>7.6.0 ~</code>** @param value 值* @return {@link SettingsBuilder}*/public SettingsBuilder setSoftDeletesRetentionLeasePeriod(String value) {return this.set("soft_deletes.retention_lease.period", value);}/*** 控制嵌套查询性能优化行为,默认值 true<br>** @param value 值* @return {@link SettingsBuilder}*/public SettingsBuilder setLoadFixedBitsetFiltersEagerly(boolean value) {return this.set("load_fixed_bitset_filters_eagerly", value);}/*** 用于在分片启动时执行严格的数据完整性检查,专家级参数<br>* 可选的值有 false checksum true ,默认值 false** @param value 值* @return {@link SettingsBuilder}*/public SettingsBuilder setShardCheckOnStartup(String value) {return this.set("shard.check_on_startup", value);}// dynamic index settings/*** 用于控制每个主分片的副本数量,默认值 1<br>* 可以调用api动态修改无需重启<br>** <ul>* <li>推荐至少 1,确保每个主分片至少有一个副本* <li>副本数应该小于等于集群节点数 - 1,例如3割接点集群最多支持每个主分片2个副本* </ul>** @param value 副本数量* @return {@link SettingsBuilder}*/public SettingsBuilder setNumberOfReplicas(int value) {return this.set("number_of_replicas", value);}/*** 用于动态调整索引副本数的配置<br>** <ul>* <li>范围模式,值 0-5 即副本数在0到5之间自动调整;0-all 即副本数最小0,最大不超过当前节点数 - 1* <li>默认值 false* </ul>** @param value 值* @return {@link SettingsBuilder}*/public SettingsBuilder setAutoExpandReplicas(String value) {return this.set("auto_expand_replicas", value);}/*** 用于控制分片空闲状态的参数,默认值 30s** @param value 值* @return {@link SettingsBuilder}*/public SettingsBuilder setSearchIdleAfter(String value) {return this.set("search.idle.after", value);}/*** 控制索引刷新频率的核心参数,直接影响数据的实时可见性和写入性能,默认值 1s** @param value 值* @return {@link SettingsBuilder}*/public SettingsBuilder setRefreshInterval(String value) {return this.set("refresh_interval", value);}/*** 限制分页查询深度,默认值 10000 即当分页查询的起始偏移量(from)与每页大小(size)之和超过该值时,请求会被拒绝<br>** <ul>* <li>基于经验值,平衡用户体验与系统安全。大多数场景下,用户不会浏览超过前 1000 页(假设每页 10 条)* </ul>** @param value 值* @return {@link SettingsBuilder}*/public SettingsBuilder setMaxResultWindow(int value) {return this.set("max_result_window", value);}/*** 用于限制内部命中(inner hits)和聚合(top_hits)结果页深度,默认值 100<br>* 增大该值会增加内存再用(尤其是聚合或嵌套文档较多时)** @param value 值* @return {@link SettingsBuilder}*/public SettingsBuilder setMaxInnerResultWindow(int value) {return this.set("max_inner_result_window", value);}/*** 用于限制重评分操作窗口大小,默认值 10000** @param value 值* @return {@link SettingsBuilder}*/public SettingsBuilder setMaxReScoreWindow(int value) {return this.set("max_rescore_window", value);}/*** 用于限制单个查询中可请求的<code>doc_value_fields</code>数量,以避免因过度资源消耗导致集群性能下降,默认值 100** @param value 值* @return {@link SettingsBuilder}*/public SettingsBuilder setMaxDocValueFieldsSearch(int value) {return this.set("max_docvalue_fields_search", value);}/*** 用于限制单个查询中通过脚本动态生成字段(script_fields)的数量,以防止因过度计算导致集群性能下降,默认值 32** @param value 值* @return {@link SettingsBuilder}*/public SettingsBuilder setMaxScriptFields(int value) {return this.set("max_script_fields", value);}/*** 用于控制NGram分词器(NGram Tokenizer)和NGram过滤器(NGram TokenFilter)的最小和最大长度差值的索引级配置<br>* 限制在 NGram 分词器或过滤器中,min_gram(最小 n-gram 长度)和 max_gram(最大 n-gram 长度)之间的差值上限<br>* 默认值 1(即 <code>max_gram - min_gram <= 1</code>)** @param value 值* @return {@link SettingsBuilder}*/public SettingsBuilder setMaxNgramDiff(int value) {return this.set("max_ngram_diff", value);}/*** 用于控制<code>Shingle Token Filter</code>(词片过滤器)中允许的<code>max_shingle_size</code>和<code>* min_shingle_size</code>最大差值的索引级配置<br>** <uL>* <li>默认值 3,即<code>max_shingle_size - min_shingle_size <= 3</code>* </uL>** @param value 值* @return {@link SettingsBuilder}*/public SettingsBuilder setMaxShingleDiff(int value) {return this.set("max_shingle_diff", value);}/*** 用于控制分片级刷新监听器数量上限的索引级配置,默认值 1000,即elasticsearch 默认将每个分片最多 1000 个监听器<br>* 限制每个分片上可同时存在的刷新监听器的最大数量** @param value 值* @return {@link SettingsBuilder}*/public SettingsBuilder setMaxRefreshListeners(int value) {return this.set("max_refresh_listeners", value);}/*** 用于控制<code>_analyze</code> API 分词结果最大数量,默认值 10000,即 10000 个词元<br>* 限制通过<code>_analyze</code> API 分析文本时,单个请求可生成的词元(Token)的最大数量** @param value 值* @return {@link SettingsBuilder}*/public SettingsBuilder setAnalyzeMaxTokenCount(int value) {return this.set("analyze.max_token_count", value);}/*** 用于控制高亮功能处理文本长度上线的索引级设置,默认值 1000000 即 1000000 个字符<br>* 限制在高亮请求中,对单个字段内容进行分析的最大字符数量,超过此限制的文本本分将不会被分析和高亮** @param value 值* @return {@link SettingsBuilder}*/public SettingsBuilder setHighlightMaxAnalyzedOffset(int value) {return this.set("highlight.max_analyzed_offset", value);}/*** 用于控制<code>Terms Query</code>(多词项精确匹配查询)中允许使用的最大词项数量的索引级配置,默认值 65536 即64k个词项<br>* 限制<code>Terms Query</code>中一次查询可指定的词项(Terms)的最大数量<br>* 适用于处理需要匹配大量精确值的查询(如Id过滤、标签匹配等)** @param value 值* @return {@link SettingsBuilder}*/public SettingsBuilder setMaxTermsCount(int value) {return this.set("max_terms_count", value);}/*** 用于限制正则表达式查询<code>Regexp Query</code>中正则表单时长度的索引级设置,默认值 1000,超过此长度的正则表达式会触发错误<br>* 限制在<code>Regexp Query</code>中使用正则表单时的最大字符长度,防止因复杂或过长的正则表单时导致性能问题或资源耗尽<br>* 适用于需要自定义正则表达式复杂度的业务场景,如日志分析,文本模式匹配** @param value 值* @return {@link SettingsBuilder}*/public SettingsBuilder setMaxRegexLength(int value) {if (value < 0 || value > 32733) {log.warn("max_regex_length value range [1, 32733], current value {}, do not set", value);return this;}return this.set("max_regex_length", value);}/*** 用于控制默认搜索字段范围,默认值 *<br>** <ul>* <li>通配符模式* <li>具体字段名* <li>字段名数组,多个字段中也可以是具体字段名和统配符模式字段* </ul>** @param value 值* @return {@link SettingsBuilder}*/public SettingsBuilder setQueryDefaultField(Object value) {return this.set("query.default_field", value);}/*** 用于控制索引分片分配策略,默认值 all,即允许所有分片被分配到节点(主分片和副分片)<br>* 可选值 all primaries replicas none** @param value 值* @return {@link SettingsBuilder}*/public SettingsBuilder setRoutingAllocationEnable(String value) {return this.set("routing.allocation.enable", value);}/*** 用于控制索引分片重新平衡策略,默认值 all,即允许所有分片参与重新平衡(主分片和副分片)<br>* 可选值 all primaries replicas none** @param value 值* @return {@link SettingsBuilder}*/public SettingsBuilder setRoutingReBalanceEnable(String value) {return this.set("routing.rebalance.enable", value);}/*** 用于控制已删除文档版本号保留时间的索引设置,默认值 60s<br>* 单位支持 h(时) | m(分) | s(秒)<br>** @param value 值* @return {@link SettingsBuilder}*/public SettingsBuilder setGcDeletes(String value) {return this.set("gc_deletes", value);}/*** 用于定义索引文档时默认使用的处理管道设置,默认空<br>* 可选值 已经存在的管道名称 _none null(空)** @param value 值* @return {@link SettingsBuilder}*/public SettingsBuilder setDefaultPipeline(String value) {return this.set("default_pipeline", value);}/*** 用于定义索引文档时必须经过的最终处理管道,默认空,不强制使用任何最终管道** <ul>* <li>特殊值 _none 标识禁用所有管道* </ul>** @param value 值* @return {@link SettingsBuilder}*/public SettingsBuilder setFinalPipeline(String value) {return this.set("final_pipeline", value);}/*** 用于控制索引是否默认隐藏,隐藏索引在通配符匹配<code>(GET *)</code>是不会自动返回,需要显式指定<code>expand_wildcards</code>* 参数才能访问,默认值 false<br>* 可选值 open closed hidden none all** @param value 值* @return {@link SettingsBuilder}*/public SettingsBuilder setHidden(String value) {return this.set("hidden", value);}
}
相关文章:
elasticsearch 7.17 索引模板
文章目录 概要 概要 模板 import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import cn.introns.framework.es.builder.OperationsBuilder; import java.util.HashMap; import java.util.Map;abstract class AbstractBuilder<T extends Abstrac…...
深入理解Python元组:从基础到高级应用
1. 元组基础认知 1.1 什么是元组 不可变序列:元组(tuple)是Python内置的不可变序列类型异构容器:可以存储不同类型的数据(与列表类似)语法特征:使用圆括号()定义,元素间用逗号分隔 # 基本示例 t1 (1, 2…...
【零基础入门unity游戏开发——动画篇】unity旧动画系统Animation组件的使用
考虑到每个人基础可能不一样,且并不是所有人都有同时做2D、3D开发的需求,所以我把 【零基础入门unity游戏开发】 分为成了C#篇、unity通用篇、unity3D篇、unity2D篇。 【C#篇】:主要讲解C#的基础语法,包括变量、数据类型、运算符、…...
Python+AI提示词用贝叶斯样条回归拟合BSF方法分析樱花花期数据模型构建迹图、森林图可视化
原文链接:https://tecdat.cn/?p41308 在数据科学的领域中,我们常常会遇到需要处理复杂关系的数据。在众多的数据分析方法中,样条拟合是一种非常有效的处理数据非线性关系的手段。本专题合集围绕如何使用PyMC软件,对樱花花期数据进…...
记一个.NET AOT交叉编译时的坑
记一个.NET AOT交叉编译时的坑 背景: 使用.NET9开发的Avalonia项目需要部署到Linux-arm64 踩坑: 根据官方AOT交叉编译文档配置后执行打包 dotnet publish -r linux-arm64提示error : The PrivateSdkAssemblies ItemGroup is required for _ComputeA…...
消息中间件对比与选型指南:Kafka、ActiveMQ、RabbitMQ与RocketMQ
目录 引言 消息中间件的定义与作用 消息中间件在分布式系统中的重要性 对比分析的四种主流消息中间件概述 消息中间件核心特性对比 消息传递模型 Kafka:专注于发布-订阅模型 ActiveMQ:支持点对点和发布-订阅两种模型 RabbitMQ:支持点…...
实战打靶集锦-38-inclusiveness
文章目录 1. 主机发现2. 端口扫描&服务枚举3. 服务探查4.系统提权 靶机地址:https://download.vulnhub.com/inclusiveness/Inclusiveness.ova 1. 主机发现 目前只知道目标靶机在192.168.56.xx网段,通过如下的命令,看看这个网段上在线的主…...
JVM 学习计划表(2025 版)
JVM 学习计划表(2025 版) 📚 基础阶段(2 周) 1. JVM 核心概念 JVM 作用与体系结构 理解 JVM 在 Java 跨平台运行中的核心作用,掌握类加载子系统、运行时数据区、执行引擎的交互流程内存结构与数据存…...
Unhandled exception: org.apache.poi.openxml4j.exceptions.InvalidFormatException
代码在main方法里面没有报错,在Controller里面就报错了。 原来Controller类里面少了行代码 import org.apache.poi.openxml4j.exceptions.InvalidFormatException; 加上去就解决了。...
Java的Selenium元素定位-xpath
xpath其实就是一个path(路径),一个描述页面元素位置信息的路径,相当于元素的坐标xpath基于XML文档树状结构,是XML路径语言,用来查询xml文档中的节点。 绝对定位 从根开始找--/(根目录)/html/body/div[2]/div/form/div[5]/button缺…...
【QT】Qt5 QtWebEngine使用教程
目录 1、QtWebEngine相比于QtWebKit的优势2、项目配置2.1 确认 Qt 版本2.2 在.pro 文件中添加依赖3、显示网页4、实现Qt和网页JavaScript之间的交互4.1 Qt执行网页的JavaScript代码4.2 JavaScript调用Qt对象的函数QtWebEngine 是 Qt 框架中用于在应用程序中嵌入 Web 内容的模块…...
python基础-13-处理excel电子表格
文章目录 【README】【13】处理Excel电子表格【13.1】Excel文档【13.2】安装openpyxl模块【13.3】读取Excel文档【13.3.1】使用openpyxl模块打开excel文档【13.3.2】从工作簿取得工作表【13.3.3】从工作表sheet获取单元格cell【13.3.5】从表中获取行和列【13.3.6】工作簿、工作…...
03.unity开发资源 获取
03.unity开发资源 获取 提示:帮帮志会陆续更新非常多的IT技术知识,希望分享的内容对您有用。本章分享的是Python基础语法。前后每一小节的内容是存在的有:学习and理解的关联性,希望对您有用~ unity简介-unity基础 第三节 …...
设计模式简述(四)模板方法模式
模板方法模式 描述基本定义使用 描述 当一系列业务的基本流程是相同的,对于不同的业务可以在各自子类实现 所谓模板方法指的就是父类中固定的那部分代码 其实这里的思想和前面设计原则中开闭原则的描述是一致的,父类中的模板代码就是稳定的部分&#x…...
OpenCV界面编程
《OpenCV计算机视觉开发实践:基于Python(人工智能技术丛书)》(朱文伟,李建英)【摘要 书评 试读】- 京东图书 OpenCV的Python开发环境搭建(Windows)-CSDN博客 OpenCV也支持有限的界面编程,主要是针对窗口、控件和鼠标…...
【leetcode】记录与查找:哈希表的题型分析
前言 🌟🌟本期讲解关于力扣的几篇题解的详细介绍~~~ 🌈感兴趣的小伙伴看一看小编主页:GGBondlctrl-CSDN博客 🔥 你的点赞就是小编不断更新的最大动力 🎆那么废话不…...
AntDesign下,Select内嵌Menu标签,做一个多选下拉框,既可以搜索,还可以选择下拉项
话不多说,直接上效果和代码 效果图一: 效果图二: renderAddStyleOption (item: any) > {const { value } this.props;const { currentSelectedOptionIds, currentStyleId } this.state;const styleSettings value?.styleSettings;c…...
css炫酷的3D水波纹文字效果实现详解
炫酷的3D水波纹文字效果实现详解 这里写目录标题 炫酷的3D水波纹文字效果实现详解项目概述技术栈核心实现1. 基础布局2. 渐变背景3. 文字效果实现3.1 基础样式3.2 文字漂浮动画 4. 水波纹效果4.1 模糊效果4.2 水波动画 5. 交互效果 技术要点项目难点与解决方案总结 项目概述 在…...
P1036 [NOIP 2002 普及组] 选数(DFS)
题目描述 已知 n 个整数 x1,x2,⋯,xn,以及 1 个整数 k(k<n)。从 n 个整数中任选 k 个整数相加,可分别得到一系列的和。例如当 n4,k3,4 个整数分别为 3,7,12,19 时,可得全部的组合与它…...
PyTorch中.pth文件的解析及应用
文章目录 一、.pth文件简介二、如何保存.pth文件三、如何加载.pth文件跨硬件加载加载后操作 四、.pth文件的结构与内容解析.pth文件示例 五、.pth文件的优缺点优点缺点 六、常见应用场景七、模型文件体积优化技巧问题背景解决方案效果对比 八、总结九、参考 一、.pth文件简介 …...
【doris】在线事务处理
目录 1. 说明2. 特点3. 应用场景4. 技术实现5. OLTP 与 OLAP 的对比6. 挑战7. 发展趋势 1. 说明 1.OLTP(Online Transaction Processing,在线事务处理) 是一种用于处理大量日常事务操作的数据库系统类型。2.它主要面向实时性要求高、数据操作…...
后端思维之高并发处理方案
前言 在互联网时代,高并发已经成为后端开发者绕不开的话题。无论是电商平台的秒杀活动、抢购系统,还是社交应用的高频互动,高并发场景的出现往往伴随着巨大的技术挑战。 如何在流量激增的同时,确保系统稳定运行、快速响应…...
OpenCV 图形API(10)用于执行标量除以矩阵的逐元素操作函数divRC()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 描述 标量除以矩阵。 函数 divRC 将给定的标量除以矩阵 src 的每个元素,并将结果保存在与 src 具有相同大小和类型的新的矩阵中: …...
14.2linux中platform无设备树情况下驱动LED灯(详细编写程序)_csdn
我尽量讲的更详细,为了关注我的粉丝!!! 因为这跟之前的不一样,提出来驱动的分离和分层。 提到驱动分离和分层,必然可以联系上一章咱们知道的驱动-总线-设备。 在无设备树的状态下,必然要写寄存…...
K8s的BackUP备份
文章目录 1、kubeadm 安装的单 master 节点数据备份和恢复方式2、Velero 工具3、Velero 服务部署4、备份还原数据 ETCD备份/还原有多种类型,取决于你 k8s 集群的搭建方式 1、kubeadm 安装的单 master 节点数据备份和恢复方式 拷贝 etcdctl 至 master 节点…...
Ruoyi-vue plus 5.2.2 flowble设计流程点击开始流程图错误
网关设置条件或者是事件删除后出现,点击网关节点无法找到下面的事件节点。 配置页面事件错误,点背景配置进去了事件,发现再次加载,或者删除的时候VUE页面无法加载。 解决方式:查看XML文件,这个节点是否存在…...
如何快速入门物联网单片机开发?
背景 物联网单片机硬件开发涉及多个阶段,元器件是否“自己设计”取决于具体需求。以下是详细解答和学习方案: 一、元器件是否自己设计? 通用元器件: 大多数情况下,开发者直接使用现成的标准化元器件(如电阻…...
在 .NET 8 中使用自定义令牌身份验证掌握 SignalR Hub 安全性
最近在练习做一个 Web 开发项目,需要使用 WebSockets 传输数据,实现实时通信。这是一个 React.js 项目,后端是 .NET。 虽然 MSDN 提供了出色的顶级文档,但它通常缺少高级用例所需的低级细节。 一种这样的场景是使用自定义令牌对…...
《SQL赋能人工智能:解锁特征工程的隐秘力量》
在当今的科技发展进程中,人工智能(AI)已经成为推动各领域变革的核心驱动力。而在人工智能的庞大体系里,特征工程占据着举足轻重的地位,它是将原始数据转化为能够让模型有效学习的特征的关键环节。鲜有人深入探讨的是&a…...
基于springboot+vue的二手车交易系统
开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:…...
