EsearchX Elasticsearch ORM 框架开源项目

我要开发同款
匿名用户2021年10月26日
49阅读
开发技术Java
所属分类程序开发、ORM/持久层框架
授权协议Apache

作品详情

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

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

执行上下文查询器命令支持自动序列化和反序列化,以及批量插入、批量更新;脚本查询、聚合查询。

快速入门:publicclassDemoApp{StringtableCreateDsl="...";publicvoiddemo(){EsContextesx=newEsContext("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=newArrayList<>();list.add(newLogDo());esx.indice("user_log").insertList(list);//批量插入或更新Map<String,LogDo>list=newLinkedHashMap<>();list.put("...",newLogDo());esx.indice("user_log").upsertList(list);//一个简单的查询LogDoresult=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);//聚合查询ONoderesult=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();}}
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论