草庐IT

Spring Boot集成简易规则引擎 easy-rules

合理的使用规则引擎可以极大的减少代码复杂度,提升代码可维护性。业界知名的开源规则引擎有Drools,功能丰富,但也比较庞大。在一些简单的场景中,我们只需要简易的规则引擎就能满足要求。本文介绍一个小巧的规则引擎easy-rules,作为一个lib库提供,支持spring的SPEL表达式,可以很好的集成在spring项目中。具体的代码参照示例项目https://github.com/qihaiyan/springcamp/tree/master/spring-easy-rule一、概述通过将业务规则配置的配置文件中,可以精简代码,同时已于维护,当规则修改时,只需要修改配置文件即可。easy-rul

【ES】[ignore_throttled] parameter is deprecated because frozen indices have been deprecated. Consider

在使用spring-boot-starter-data-elasticsearch 判断索引是否存在时日志返回 warnings :[ignore_throttled]parameterisdeprecatedbecausefrozenindiceshavebeendeprecated.Considercoldorfrozentiersinplaceoffrozenindices.[ignore_throttled]参数已被弃用,因为冻结索引已被弃用。考虑用冷层或冻结层代替冻结指数。引入的maven包org.springframework.bootspring-boot-starter-dat

ES(elasticSearch学习笔记)

什么是eses是面向文档型的数据库,一条数据在es数据库就是一个文档,和关系型数据库做一个类比:1:es的索引类比关系型数据库的数据库,2:es的type类比数据表(7.0版本以上删除了type这个概念),3:es的索引下的文档document类比关系型数据库的行,新增时可以指定文档主键id,不指定会自动生成4:es的文档中的字段类比关系关系型数据库的列。现实生产中一般一个索引类似张表,但是一个索引下的字段还可以是一个对象,可以嵌套。match每一次全文搜索分词是针对某一个字段的,可以是嵌套搜索,一次全文搜索不是针对整个索引的全部字段,想要同时全文搜多个字段可以一次请求中match多个字段pu

ES搜索框架--设置IK分词器

ES的默认中文分词效果太差了,稍微长一点的词句就完全匹配不到,于是选择使用安装IK中文分词器来实现索引的分词。参考:https://blog.csdn.net/w1014074794/article/details/119762827https://www.bbsmax.com/A/6pdDqDaXzw/一、安装官网教程:https://github.com/medcl/elasticsearch-analysis-ik,注意版本对应的问题1.下载从此处下载预构建包:https://github.com/medcl/elasticsearch-analysis-ik/releases根据版本匹

ES集群搭建及Kibana安装

一、准备条件机器(三台不同机器,IP瞎写的):192.168.1.1192.168.1.2192.168.1.3jdk:jdk-8u202-linux-x64.tar.gzes版本:elasticsearch-7.10.1-linux-x86_64.tar.gz下载地址:https://www.elastic.co/cn/downloads/past-releases#elasticsearch二、关闭防火墙关闭systemctlstopfirewalld禁止开机启动防火墙systemctldisablefirewalld查看是否关闭防火墙systemctlstatusfirewalld三、创

Error [ERR_REQUIRE_ESM]: Must use import to load ES Module: E:\works\large-file-uploader\node_module

 使用npmrundev启动vite项目报错:>viteinternal/modules/cjs/loader.js:1174thrownewERR_REQUIRE_ESM(filename,parentPath,packageJsonPath);^Error[ERR_REQUIRE_ESM]:MustuseimporttoloadESModule:E:\works\large-file-uploader\node_modules\vite\bin\vite.jsatObject.Module._extensions..js(internal/modules/cjs/loader.js:117

【Elasticsearch】es脚本编程使用详解

目录一、es脚本语言介绍1.1什么是es脚本1.2es脚本支持的语言1.3es脚本语言特点1.4es脚本使用场景二、环境准备2.1docker搭建es过程2.1.1拉取es镜像2.1.2启动容器2.1.3配置es参数2.1.4重启es容器并访问2.2docker搭建kibana过程2.2.1拉取kibana镜像2.2.2启动kibana容器2.2.3修改配置文件2.2.4重启容器并访问三、Scripting使用详解3.1数据准备3.1.1创建索引3.1.2添加测试数据3.2es脚本常用CRUD操作3.2.1修改id为1001数据的价格3.2.2修改id为1005数据的tag3.2.3删除id为

前端 ES6 环境下 require 动态引入图片以及问题

前端ES6环境下require动态引入图片以及问题import引入与require引入区别require引入图片方式打包体积对比总结ES6环境中,通过require的方式引入图片很方便,一直以来也没有出过什么问题,后来项目中,需要动态引入图片。require动态引入也容易实现,百度也能搜到很多博客介绍。偶然发现项目中require引入图片好像对打包体积影响挺大,js会变大很多,经过测试,终于确定原因,这里记录一下。本文主要包括:require引入图片方式、打包体积对比。import引入与require引入区别在ES6中,import语句是静态执行的,意味着它们在模块内部的顶层执行,并且在模块内

shingcloud整合es(黑马案例)

1.sql/*NavicatPremiumDataTransferSourceServer:localSourceServerType:MySQLSourceServerVersion:50622SourceHost:localhost:3306SourceSchema:heimaTargetServerType:MySQLTargetServerVersion:50622FileEncoding:65001Date:06/05/202118:31:05*/SETNAMESutf8mb4;SETFOREIGN_KEY_CHECKS=0;-----------------------------

es--Elastic Search深度分页问题分析及四种解决方案

1.简介​Elasticsearch的深度分页是指当你需要查询的结果数量非常多时,需要分页查询的第n页时,每次查询都需要扫描前n-1页的数据来获取结果。这样会导致性能问题,因为它需要很长的时间来完成查询。2.解决方案ScrollAPI:ScrollAPI可以让你在每个查询阶段中存储状态。这样,你就不需要从头开始查询,而只需要继续上一次的查询。使用ScrollAPI可以避免深度分页的开销,并且可以更好地管理内存。SearchAfter:SearchAfter是一种基于游标的分页方案,它使用最后一个结果的位置作为游标位置,从而避免使用_from_和_size_参数。Time-BasedPagina