EsearchX for Java は、簡単でシンプルな Elasticsearch ORM フレームワークである okhttp + snap3 に基づいて開発されています。
- jdk8、jdk11、jdk17、jdk20をサポート
- es7.x、es8.xをサポート
- ラムダ連鎖書き込み方式を採用しており、とても爽快です
public class DemoApp {
public void demo() {
EsContext esx = new EsContext("localhost:30480");
//批量插入
List<LogDo> list = new ArrayList<>();
list.add(new LogDo());
esx.indice("user_log").insertList(list);
//一个简单的查询
LogDo result = esx.indice("user_log").selectById(LogDo.class, "1");
//一个略复杂些的查询
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);
}
}
この更新:
- スナックは次のようにアップグレードされます: 3.2.66
- EsAggs はエイリアスのサポートを追加します
ONode oNode = context.indice(indice)
.where(c -> c.range("grade", r -> r.gte(3)))
.limit(0)
.aggs(a -> a.min("grade", "grade")) //别名
.selectAggs();
long gradeMin = oNode.get("grade").get("value").getLong();
プロジェクト リポジトリ: