package com.ycl.scheme; import com.ycl.scheme.entity.Keyword; import com.ycl.scheme.entity.KeywordType; import java.util.ArrayList; import java.util.List; public class KeywordExample { private static List keywords= new ArrayList<>(); static { //表名 Keyword table = Keyword.builder().name("警情通报").keywordType(KeywordType.TABLE_NAME).table("t_info").tableTimeField("create_time").build(); keywords.add(table); Keyword table2 = Keyword.builder().name("案件系统").keywordType(KeywordType.TABLE_NAME).table("t_case").tableTimeField("create_time").build(); keywords.add(table2); //符号 Keyword s1= Keyword.builder().name("并且").keywordType(KeywordType.SYNTAX).code("and").build(); keywords.add(s1); Keyword s2= Keyword.builder().name("或者").keywordType(KeywordType.SYNTAX).code("or").build(); keywords.add(s2); Keyword s3= Keyword.builder().name("包含").keywordType(KeywordType.SYNTAX).code("like").regex("['\"]([^'\"]*)['\"]").build(); keywords.add(s3); //字段 Keyword c1= Keyword.builder().name("警情内容").keywordType(KeywordType.FIELD_NAME).table("t_info").field("content").dataType("String").build(); keywords.add(c1); Keyword c2= Keyword.builder().name("部门").keywordType(KeywordType.FIELD_NAME).table("t_info").field("dept_name").dataType("String").build(); keywords.add(c2); Keyword c3= Keyword.builder().name("案发地").keywordType(KeywordType.FIELD_NAME).table("t_info").field("address").dataType("String").build(); keywords.add(c3); Keyword c4= Keyword.builder().name("涉案金额").keywordType(KeywordType.FIELD_NAME).table("t_info").field("amt").dataType("String").build(); keywords.add(c4); Keyword c21= Keyword.builder().name("警情内容").keywordType(KeywordType.FIELD_NAME).table("t_case").field("content").dataType("String").build(); keywords.add(c21); Keyword c22= Keyword.builder().name("部门").keywordType(KeywordType.FIELD_NAME).table("t_case").field("dept_name").dataType("String").build(); keywords.add(c22); Keyword c23= Keyword.builder().name("案发地").keywordType(KeywordType.FIELD_NAME).table("t_case").field("address").dataType("String").build(); keywords.add(c23); Keyword c24= Keyword.builder().name("涉案金额").keywordType(KeywordType.FIELD_NAME).table("t_case").field("amt").dataType("String").build(); keywords.add(c24); //函数 \\((.*?)\\) Keyword f1= Keyword.builder().name("时间范围").keywordType(KeywordType.TIME_RANGE_FUNCTION).regex("\\(\\s*最近\\s*\\d+\\s*天\\s*\\)").build(); keywords.add(f1); Keyword f2= Keyword.builder().name("计数").keywordType(KeywordType.FUNCTION).functionParameterNullable(true).code("count").regex("\\s*\\((.*?)\\)\\s*").build(); keywords.add(f2); Keyword f3= Keyword.builder().name("合计").keywordType(KeywordType.FUNCTION).code("sum").regex("\\s*\\((.*?)\\)\\s*").build(); keywords.add(f3); //特殊值 Keyword p1= Keyword.builder().name("最近?天").keywordType(KeywordType.TIME_RANGE).regex("\\d+").build(); keywords.add(p1); } public static List getKeywords(){ return keywords; } public static class CanalTriggerBuilder { } }