EsearchX 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
EsearchX 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
EsearchX 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 Apache
开发语言 Java 查看源码 »
操作系统 跨平台
软件类型 开源软件
开源组织
地区 国产
投 递 者 梅子酒好吃
适用人群 未知
收录时间 2021-10-26

软件简介

EsearchX for java

基于 okhttp + snack3 开发,是一个代码直白和简单的 Elasticsearch ORM 框架

项目里有3个关键的对象概念:

  • 执行上下文
  • 查询器
  • 命令

支持自动序列化和反序列化,以及批量插入、批量更新;脚本查询、聚合查询。

快速入门:

public class DemoApp {
    String tableCreateDsl = "...";

    public void demo() {
        EsContext esx = new EsContext("localhost:30480");

        //创建索引
        esx.indiceCreate("user_log_20200101", tableCreateDsl);
        esx.indiceCreate("user_log_20200102", tableCreateDsl);
        esx.indiceCreate("user_log_20200103", tableCreateDsl);

        //构建索引别名
        esx.indiceAliases(a -> a
                .add("user_log_20200101", "user_log")
                .add("user_log_20200102", "user_log")
                .add("user_log_20200103", "user_log"));
        
        //删除索引(如果存在就删了;当然也可以直接删)
        if (esx.indiceExist("user_log_20200101")) {
            esx.indiceDrop("user_log_20200101");
        }
        
        //批量插入
        List<LogDo> list = new ArrayList<>();
        list.add(new LogDo());
        esx.indice("user_log").insertList(list);
        
        //批量插入或更新
        Map<String, LogDo> list = new LinkedHashMap<>();
        list.put("...",new LogDo());
        esx.indice("user_log").upsertList(list);
        
        //一个简单的查询
        LogDo result = esx.indice("user_log").selectById("1");
        
        //一个带条件的查询
        EsData<LogDo> result = esx.indice("user_log")
                .where(r -> r.term("level", 5))
                .orderByDesc("log_id")
                .limit(50)
                .selectList(LogDo.class);
        
        //一个复杂些的查询
        EsData<LogDo> result = esx.indice(indice)
                .where(c -> c.useScore().must()
                        .term("tag", "list1")
                        .range("level", r -> r.gt(3)))
                .orderByAsc("level")
                .andByAsc("log_id")
                .minScore(1)
                .limit(50, 50)
                .selectList(LogDo.class);

        //脚本查询
        EsData<LogDo> result = esx.indice(indice)
                .where(c -> c.script("doc['tag'].value.length() >= params.len", p->p.set("len",2)))
                .limit(10)
                .selectList(LogDo.class);
        
        //聚合查询
        ONode result = esx.indice(indice)
                .where(w->w.term("tag","list1"))
                .limit(0)
                .aggs(a -> a.terms("level", t -> t.size(20))
                            .aggs(a1 -> a1.topHits(2, s -> s.addByAes("log_fulltime"))))
                .selectAggs();
    }
}
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击引领话题📣 发布并加入讨论🔥
发表了资讯
2023/05/07 09:38

Elasticsearch ORM 框架,EsearchX v1.0.22 发布

EsearchX for java 是基于 okhttp + snack3 开发的,一个代码直白和简单的 Elasticsearch ORM 框架。 支持 jdk8、jdk11、jdk17、jdk20 支持 es7.x、es8.x 采用 lambda 链式写法,很是清新 public class DemoApp { public void demo() { EsContext esx = new EsContext("localhost:30480"); //批量插入 List<LogDo> list = new ArrayList<>(); list.add(new LogDo()); ...

1
6
发表了资讯
2023/05/02 09:16

Elasticsearch ORM 框架,EsearchX v1.0.20 发布

EsearchX for java 是基于 okhttp + snack3 开发的,一个代码直白和简单的 Elasticsearch ORM 框架。 支持 jdk8、jdk11、jdk17、jdk20 支持 es7.x、es8.x 采用 lambda 链式写法,很是清新 public class DemoApp { public void demo() { EsContext esx = new EsContext("localhost:30480"); //批量插入 List<LogDo> list = new ArrayList<>(); list.add(new LogDo()); ...

2
8
发表了资讯
2022/10/30 09:47

Elasticsearch ORM 框架,EsearchX v1.0.17 发布

EsearchX for java 是基于 okhttp + snack3 开发的,一个代码直白和简单的 Elasticsearch ORM 框架。 支持 jdk8、jdk11、jdk17、jdk19 支持 es7.x、es8.x 采用 lambda 链式写法,很是清新 public class DemoApp { public void demo() { EsContext esx = new EsContext("localhost:30480"); //批量插入 List<LogDo> list = new ArrayList<>(); list.add(new LogDo()); ...

0
18
发表了资讯
2022/03/30 17:18

EsearchX v1.0.10 已经发布,Elasticsearch ORM 框架

EsearchX v1.0.10 已经发布,Elasticsearch ORM 框架。 此版本更新内容包括: 增加脚本查询支持 增加聚合查询 增加 data stream 支持 增加模板与组件的创建接口 增加 policyExist,policyShow 接口 snack 升有为:3.2.16 调整 http 链接池配置 详情查看:https://gitee.com/noear/esearchx/releases/v1.0.10...

0
14
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
暂无内容
0 评论
18 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部