想要解析类似(name=xxx AND age=xx) OR tel=xxxx 这样的表达式,java 中有这样的工具类去拆分 keyvalue 与 operator 么
场景主要是把逻辑表达式转换成 es 的查询语句,有点类似封装一层 kibana。
1
Cbdy 2020-02-01 16:06:19 +08:00 via Android
可以试试 EL ( Spring )表达式和 ONGL 表达式。或者直接用嵌入 JVM 的 JS/Python 引擎
|
3
zhuangzhuang1988 2020-02-01 16:31:59 +08:00 via Android
antlr 啊,很多用的,工具齐全,设计优良,而且可以编译给很多语言用
|
4
speedofstephen 2020-02-01 16:45:04 +08:00
spring 自己有一个哦。 就是 Spring 内部解析 Spel 的那个。 关键字 SpringExpressionParser
|
5
billlee 2020-02-01 17:15:58 +08:00
这个场景推荐 ANTLR 4
|
6
jimrok 2020-02-01 18:47:30 +08:00
ANTLR,去做吧
|
7
gowk 2020-02-01 19:06:37 +08:00 via Android
GitHub 搜 easy-rule
|
8
pythonee 2020-02-02 14:49:49 +08:00
可以自己手写下 parser
|