Esdsl 框架使得将 Elasticsearch 与面向对象应用程序结合使用变得更加容易。
- Maven:
<dependency> <groupId>com.manymobi</groupId> <artifactId>esdsl-core</artifactId> <version>1.0.0-beta1</version> </dependency>
- Gradle
compile 'com.manymobi:esdsl-core:1.0.0-beta1'
RestClient restClient;
esdsl = new Esdsl.Build()
// esdsl文件目录
.setEsdslFileResourceHandler(new PathEsdslFileResourceHandler(new File("src/test/resources/")))
// 设置Elasticsearch客户端
.setRestHandler(new DefaultRestHandler(restClient))
// 设置 json解码框架
.setJsonEncoder(new FastjsonJsonEncoder())
.build();
// 获取Mapper对象
TestMapper testMapper = esdsl.target(TestMapper.class);
// 调用搜索
testMapper.search("test");
==> {方法名}
{请求方式} {请求地址}
{json}
-
请求方式: PUT POST GET DELETE
-
判断: #if() #elseif() #endif
#if(${name}=="1") "match" : { "id" :123133131223123212313131 } #elseif(${name}=="2") "match" : { "id" :123133131223123212313131 } #endif
-
循环:
#for(index,item in #{list} open='[' close=']' separator=',') #{item} #endfor
- index: 循环序号
- item: 循环的每一项
- list: 被循环的变量
- open: foreach代码的开始符号
- separator: 元素之间的分隔符
- close: foreach代码的关闭符号
-
变量:#{} 会对变量预处理 ${}会直接拼接上
1. Optional
2. Future,CompletableFuture,CompletionStage
3. 其他对象将使用使用json解析框架解析