316人参与 • 2024-07-31 • Bootstrap
easy-es傻瓜级elasticsearch搜索引擎orm框架https://www.easy-es.cn/
<dependencies>
<!--easy-es-boot-starter -->
<dependency>
<groupid>cn.easy-es</groupid>
<artifactid>easy-es-boot-starter</artifactid>
<version>2.0.0-beta1</version>
</dependency>
<dependency>
<groupid>org.springframework.boot</groupid>
<artifactid>spring-boot-starter-web</artifactid>
<!--排除springboot中自带的es依赖-->
<exclusions>
<exclusion>
<groupid>org.elasticsearch.client</groupid>
<artifactid>elasticsearch-rest-high-level-client</artifactid>
</exclusion>
<exclusion>
<groupid>org.elasticsearch.client</groupid>
<artifactid>elasticsearch-rest-client</artifactid>
</exclusion>
<exclusion>
<groupid>org.elasticsearch</groupid>
<artifactid>elasticsearch</artifactid>
</exclusion>
</exclusions>
</dependency>
<!--es-->
<dependency>
<groupid>org.elasticsearch.client</groupid>
<artifactid>elasticsearch-rest-high-level-client</artifactid>
<version>7.14.0</version>
</dependency>
<dependency>
<groupid>org.elasticsearch.client</groupid>
<artifactid>elasticsearch-rest-client</artifactid>
<version>7.14.0</version>
</dependency>
<dependency>
<groupid>org.elasticsearch</groupid>
<artifactid>elasticsearch</artifactid>
<version>7.14.0</version>
</dependency>
<!--lombok-->
<dependency>
<groupid>org.projectlombok</groupid>
<artifactid>lombok</artifactid>
<optional>true</optional>
</dependency>
<!--hutool-->
<dependency>
<groupid>cn.hutool</groupid>
<artifactid>hutool-all</artifactid>
</dependency>
<dependency>
<groupid>org.springframework.boot</groupid>
<artifactid>spring-boot-starter-test</artifactid>
<scope>test</scope>
</dependency>
</dependencies>
注解 | easy-es傻瓜级elasticsearch搜索引擎orm框架https://www.easy-es.cn/pages/v1.x/4eb7db/#esmapperscan
@indexname( aliasname = "es_product")
public class esproduct {
@indexid(type = idtype.customize)
private integer id;
@indexfield( fieldtype= fieldtype.text, analyzer = analyzer.ik_max_word,searchanalyzer = analyzer.ik_max_word)
private string name;
@indexfield( fieldtype= fieldtype.integer)
private integer categoryid;
@indexfield( fieldtype= fieldtype.double) // 12.56
private bigdecimal price;
@indexfield( fieldtype= fieldtype.text, analyzer = analyzer.ik_max_word)
private string brief;
@indexfield( fieldtype= fieldtype.keyword)
private string img;
@indexfield( fieldtype= fieldtype.text, analyzer = analyzer.ik_max_word)
private list<string> tags;
@indexfield( fieldtype= fieldtype.integer) //198
private integer highopinion;
@indexfield( fieldtype= fieldtype.integer)
private integer salesvolume;
@indexfield( fieldtype= fieldtype.date)
private localdatetime productiondate;
}
import cn.easyes.core.core.baseesmapper;
public interface productmapper extends baseesmapper<product> {
}
# easy-es配置部分
easy-es:
# 启用easy-es功能
enable: true
# 设置elasticsearch服务器地址和端口
address: 192.168.23.27:9200
# 全局配置项,设置是否打印执行的dsl语句(便于调试)
global-config:
print-dsl: true
@test
void insert() {
esproduct esproduct = esproduct.builder()
.id(1)
.name("小米")
.img("图片地址")
.brief("小米(mi)redmi note12 5g 120hz oled屏幕 骁龙4移动平台 5000mah长续航 8gb+128gb子夜黑 小米红米")
.price(new bigdecimal(18))
.categoryid(1)
.highopinion(20)
.productiondate(localdatetime.now())
.salesvolume(99)
.tags(collutil.newarraylist("120高刷","舒适护眼"))
.build();
esmapper.insert(esproduct);
}
@test
void insert2() {
delete();
list<esproduct> esproducts = collutil.newarraylist();
for (int i = 1; i <= 10; i++) {
esproduct esproduct = esproduct.builder()
.id(i)
.name("小米"+i)
.img("图片地址"+i)
.brief("小米(mi)redmi note"+i+" 5g 120hz oled屏幕 骁龙4移动平台 5000mah长续航 8gb+128gb子夜黑 小米红米")
.price(new bigdecimal(500.36+i))
.categoryid(1)
.highopinion(100+i)
.productiondate(localdatetime.now())
.salesvolume(200+i)
.tags(collutil.newarraylist("12"+i+"高刷","舒适护眼"))
.build();
esproducts.add(esproduct);
}
esmapper.insertbatch(esproducts);
}
@test
void update() {
esproduct esproduct = esproduct.builder()
.id(1)
.name("su7")
.img("图片地址")
.brief("小米汽车")
.price(new bigdecimal(18))
.categoryid(9)
.highopinion(20)
.productiondate(localdatetime.now())
.salesvolume(99)
.tags(collutil.newarraylist("120高刷","舒适护眼"))
.build();
integer integer = esmapper.updatebyid(esproduct);
}
@test
void delete() {
integer batchids = esmapper.deletebatchids(collutil.newarraylist(1, 2, 3, 4, 5, 6, 7, 8, 9, 10));
}
@test
void select() {
lambdaesquerywrapper querywrapper = new lambdaesquerywrapper<esproduct>();
querywrapper.eq("id",1);
list list = esmapper.selectlist(querywrapper);
}
@test
void select2() {
lambdaesquerywrapper querywrapper = new lambdaesquerywrapper<esproduct>();
querywrapper.querystringquery("汽车之家"); //所有字段都去匹配
list list = esmapper.selectlist(querywrapper);
}
@test
void select3() {
lambdaesquerywrapper querywrapper = new lambdaesquerywrapper<esproduct>();
querywrapper.eq("categoryid",1);
list list = esmapper.selectlist(querywrapper);
}
@test
void select4() {
lambdaesquerywrapper<esproduct> querywrapper = new lambdaesquerywrapper<>();
querywrapper.in(esproduct::getcategoryid,1,9);
list list = esmapper.selectlist(querywrapper);
}
@test
void select5() {
lambdaesquerywrapper<esproduct> querywrapper = new lambdaesquerywrapper<>();
//querywrapper.match(esproduct::getbrief,"汽车",1.0f);
//querywrapper.match(esproduct::getname,"汽车",1.0f);
//querywrapper.multimatchquery("汽车", operator.or, esproduct::getname,esproduct::getbrief);
querywrapper.in("categoryid",1,9); //where categroyid in (1,9) and ( name like '%汽车%' or brief like '%汽车%')
querywrapper.and(
w->w.match(esproduct::getbrief,"汽车",1.0f)
.or().match(esproduct::getname,"汽车",2.0f));
list list = esmapper.selectlist(querywrapper);
string dsl = esmapper.getsource(querywrapper);
system.out.println(dsl);
}
@test
void select6() {
lambdaesquerywrapper<esproduct> querywrapper = new lambdaesquerywrapper<>();
querywrapper.in("categoryid",1,9); //where categroyid in (1,9) and ( name like '%汽车%' or brief like '%汽车%')
querywrapper.and(
w->w.match(esproduct::getbrief,"高刷",1.0f)
.or().match(esproduct::getname,"高刷",2.0f)
.or().match(esproduct::gettags,"高刷",1.0f));
querywrapper.orderbydesc(esproduct::getsalesvolume);
espageinfo<esproduct> esproductespageinfo = esmapper.pagequery(querywrapper, 2, 3);
string dsl = esmapper.getsource(querywrapper);
system.out.println(dsl);
}
@test
void select7() {
lambdaesquerywrapper<esproduct> querywrapper = new lambdaesquerywrapper<>();
querywrapper.match(esproduct::getname,"水汽车门");
list<esproduct> esproducts = esmapper.selectlist(querywrapper);
}
get /es_product/_mapping
get /product/_doc/2/_termvectors?fields=brief
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论