数据过滤系列-Aviator表达式过滤+java实现
文章平均质量分 88
实际工作中怎么实现过滤规则配置化
优惠券已抵扣
余额抵扣
还需支付
¥29.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
苦思冥想行则将至
分享下心得!加油,会越来越好的!让这世界更加美好我们一起努力!
展开
-
实际工作场景中数据数初步清洗逻辑使用数据过滤系列-Aviator表达式过滤主要讲解实现主页,配置数据过滤规则有什么用怎么用
前言:目前我们业务场景是每分钟可以入库数据60000+数据,这些数据,很多都是毫无价值的数据,那么进一步就需要我们进行数据的清洗,目前在这里我只讲解我们初步的过滤阶段后续的清洗后续课程看时间,等我整理好了有时间了就再来加更!其实可以通诺JDK的自带的方法或者正则表达式进行过滤数据,可是实际的业务需求是可以自配的,也就是说可以动态的进行配置,不断地修改规则,进行满足业务需求。那么在技术实现上,最开始的是使用JDK的过滤开发实现的,效率也还可以,但是随着入库数据的不断增加,业务需要更为复杂的规则进行过滤,j原创 2021-01-16 01:30:26 · 712 阅读 · 2 评论 -
规则同时满足等于条件A且同时满足等于条件B,对数据进行过滤,如何实现表达式开发实现1对1条件限制
表达式过滤规则1;1对1的包含关系:一对一条件限定的前提下,配置Aviator表达式,自定义常量数据,实现表达式规则过滤,列如在A-a的条件前提下,自动的匹配规则在满足A的前提下,当且仅当满足a,那么返回true,自动判断是否符合规则...原创 2020-08-17 17:04:58 · 535 阅读 · 0 评论 -
表达式规则的前期工作,如何实现简单讲解
1、首先简单的介绍一下Aviator。工作中,我们在做数据清洗的时候需要对文字,标题,标签的进行过滤,此时使用Aviator建立自己的表达式规则真的很有必要,可以自定义一些函数来实现我们自己业务规则方面的过滤使用。1、1比如过滤一下标题中含有下面字符串的需要过滤掉...原创 2020-07-23 19:31:15 · 475 阅读 · 0 评论 -
Java代码使用LUA缓存进行是否启用线程操作提高执行速度
主要是使用功能的Aviator表达式引擎,进行运行2W+个表达式,主要是真个表达式相关的。目前耗时还是蛮多的呢!那怎么进行优化呢?原创 2023-01-17 14:00:31 · 855 阅读 · 0 评论 -
AviatorFunction局限性Expression .getName 获取表达式名称是无法获取到的Aviator的局限性
Aviator getNameAviatorEvaluator.compile(expression) 这个断点可以看到目前运行的表达式原创 2020-12-10 10:05:19 · 625 阅读 · 2 评论 -
数据过滤系列-Aviator表达式过滤+java实现总结篇,实际工作中过滤资讯案例展示
1、接口展示背景是,过滤抓取的资讯信息,通过四个维度进行过滤,过滤规则配置在表达式里面,通过抓取之后统一的表达式过滤入口,然后筛选数据入库!不符合的数据进行删除处理!"expressionList": [ "anyequalslist('$DSCODE$','#DSCODE20201124#')" ],------>匹配的表达式"expression": null,"resultFlag": true,"resultDesc": "无匹配关键字 标题不含主体(JDK).原创 2020-12-03 11:18:21 · 750 阅读 · 0 评论 -
标题不符合正则表达式且标题符合正则表达式 * NOT (title REGEXP ‘政府补助‘ AND title NOT REGEXP ‘公告$‘)
标题,正则匹配标题 ,正则不匹配标题 同时满足主要要求是:* 标题不符合正则表达式或标题符合正则表达式* NOT (title REGEXP '政府补助' AND title NOT REGEXP '公告$')import com.googlecode.aviator.AviatorEvaluator;import com.googlecode.aviator.Expression;import com.googlecode.aviator.runtime.function.Abstra原创 2020-11-20 17:07:47 · 706 阅读 · 0 评论 -
aviator表达式过滤符合规则的数据初始篇,如何使用功能通过java简洁代码通过SpringBoot或者SpringCloud集成.aviator.Expression自定义实现表达式
依赖:<!-- https://mvnrepository.com/artifact/com.googlecode.aviator/aviator --><dependency> <groupId>com.googlecode.aviator</groupId> <artifactId>aviator</artifactId> <version>5.0.0</version>&l原创 2020-06-22 13:15:43 · 1681 阅读 · 0 评论 -
AviatorEvaluator实现自定义AnyEqualsListFunction表达式来统一的过滤数据,抓取匹配符合自定义规则的数据实现java代码逻辑,数据过滤模块里面的java代码处理
继承AviatorEvaluator实现自定义AnyEqualsListFunction表达式 自定义表达式实现java逻辑public class AnyEqualsListFunction extends AbstractFunction { /***** * 表达式表示 * @param env * @param arg * @param arg2 * @return */ @Override public.原创 2020-06-24 14:21:46 · 1703 阅读 · 0 评论 -
统一的Aviator表达过滤服务的实现,俩张数据表,实际解决的业务场景,对外提供服务
1、怎么样串起来所有的自定义表达式主要是实现了,所有的表达式的建立之后,下面就应该怎么样实现创建起来,不同的表达式,怎么样实现共用的模块调用,通过随意传入一个表达式,可以自动的编译识别之后返回我们想要的结果呢?此时此刻就需要全部注册机制,首先就是匹配常量的参数表+表达式实现的表结构,怎么样实现调用。要有通用的实现人口。 FunctionQueryResponse response = functionFilterService.functionFilterExpression(newsInfo原创 2020-09-29 21:43:50 · 480 阅读 · 0 评论 -
aviator自定义表达式来实现正则匹配的表达式规则过滤,针对1对1的限制下,通过配置不同的正则进行来过滤数据,数据处理加工AbstractFunction实现的java代码案例
正则表达式基于aviator的实现代码如下:java实现的demo类如下,可作为直接的调用,只针对的是一个入参匹配多少的正则表达式,仅仅是在一对一的情况下匹配上什么正则表达式:import com.googlecode.aviator.AviatorEvaluator;import com.googlecode.aviator.Expression;import com.googlecode.aviator.runtime.function.AbstractFunction;import c原创 2020-09-29 21:27:35 · 1861 阅读 · 0 评论 -
表达式执行过程中需要注意的事项,实际工作中遇到的问题和异常
1、提前注意就是敏感性符号expression = "patternfunction('$TITLE$','$NAME$','#PATTERN_NAME20200925#')";通过表达式的配置可见,我们使用的表达式其实是对于单引号是特别的敏感的,因为aviator其实就是根据单引号【‘’】来切分白到时的入参的,所以我们在做实现的自定义表达式的时候需要特别注意这里面的参数是不是含有单引号,今天在看后台日志的时候,出现发生异常错误,之前没有遇到过的,仔细观察发现其实是因为里面有单引号导致的这个表达式原创 2020-09-29 21:21:44 · 561 阅读 · 0 评论 -
过滤入参以字符串A【可配置变动的关键字】为开头的规则实现
1、实现Aviator自定义表达式的描述2、自定义Aviator表达式描述示例原创 2020-09-03 10:21:21 · 291 阅读 · 0 评论 -
过滤aviator正则表达式规则aviator自定义正则表达式
1、自定义的表达式配置案例 patternfunction('李克强:抢到桥店强调我们要做好今天','title') 2、自定义AviatorObject实现的依赖配置 <!-- https://mvnrepository.com/artifact/com.googlecode.aviator/aviator --><dependency> <groupId>com.googlecode.aviator</groupId> ..原创 2021-01-08 09:57:45 · 2021 阅读 · 0 评论 -
规则过滤入参以字符串A【可配置变动的关键字】为结尾的文章
1、展示实现逻辑 /**** * 主要是实现以、、、、为结尾的表达式逻辑 * @param env Map * @param arg 入参1,作为一个可变的参数变量 * @param arg2 一个Map的key',在Map里面获取List这样就可以实现获取Value * @return Boolean */ 2、展示运行结果 public static void main(String[] args) { //注册自定义表达式函数 AviatorE..原创 2020-09-03 09:38:34 · 246 阅读 · 0 评论 -
规则满足入参包含每一个字符串A【可配置变动的配置参数】判断字符串是否包含List里面的任意一个表达式实现
实现例子展示 aviator自定义表达式如下eachcontainlist('前值实际值','title') &&!eachcontainlist('这个简短的字符串返回测试结果为false','title')返回true;测试案例:public static void main(String[] args) { //注册自定义表达式函数 AviatorEvaluator.addFunction(new EachContainL...原创 2020-09-03 09:33:09 · 514 阅读 · 0 评论 -
规则满足包含条件A【可配置变动的配置参数】Aviator表达式
配置Aviator表达式,自定义常量数据,实现表达式规则过滤,是否入参变量包含我配置的规则当且仅当满足,那么返回true,自动判断是否符合规则 String expression = "containlist('测试数据前值是否包实际值含','实际值')";返回为true;public static void main(String[] args) { //注册自定义表达式函数 AviatorEvaluator.addFunction(new ContainList...原创 2020-09-03 09:04:56 · 636 阅读 · 0 评论 -
规则满足等于条件A【可配置变动的配置参数】,规则表达式
配置Aviator表达式,自定义常量数据,实现表达式规则过滤,是否入参变量等于我配置的规则当且仅当满足,那么返回true,自动判断是否符合规则比如:/*** * 第一个入参是可变的变量; * 第二个参数是作为表达式常量,保存数据库表里面的List字段 * @param args * 返回的 是Boolean类型 */public static void main(String[] args) { //注册自定义表达式函数 AviatorEvaluator.addFu..原创 2020-09-02 21:42:50 · 426 阅读 · 0 评论 -
规则满足包含条件A同时满足包含条件B,规则Aviator表达式
A=A满足,B包含b返回true,不然返回false 一对一条件限定的前提下, 配置Aviator表达式,自定义常量数据,实现表达式规则过滤,在A=AA的前提下,判断入参BB是否包含B,当且仅当满足a,那么返回true,自动判断是否符合规则 主要实现的java代码 package com.util.function;import com.googlecode.aviator.AviatorEvaluator;import com.googlecode.aviator.Express..原创 2020-09-02 21:39:38 · 837 阅读 · 0 评论 -
规则包含使用分词和JDK自带流式stream处理效率对比--分词lucene-word过滤与JDK的contains方法对比
前提配置,pom.xml我们使用1.3.1的版本; <dependency> <groupId>org.apdplat</groupId> <artifactId>word</artifactId> <version>${apdplat.word.version}</version> <exclusions&..原创 2020-08-31 13:52:05 · 275 阅读 · 0 评论