📄 整合 ElasticSearch 搜索使用
内部资料,请刷新扫码登录
pigcloud
# 环境说明
环境说明
- ORM:easy-es 2.0.0 (opens new window)
- ElasticSearch:7.14.0
- pigx:5.2
请保持环境如上,ElasticSearch 兼容性较差无法保证其他版本正常整合执行。
# 快速开始
# ① 安装 ElasticSearch
docker run --name es714 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -d registry.cn-hangzhou.aliyuncs.com/dockerhub_mirror/elasticsearch:7.14.0
# ② 微服务增加 easy-es 依赖
<dependency>
<groupId>org.dromara.easy-es</groupId>
<artifactId>easy-es-boot-starter</artifactId>
<version>2.0.0</version>
</dependency>
# ③ 配置文件增加链接配置
spring:
elasticsearch:
uris: 127.0.0.1:9200
easy-es:
address: ${spring.elasticsearch.uris}
# 示例代码编写
# ① 创建索引实体
@Data
@IndexName("document")
public class Document {
/**
* es中的唯一id
*/
private String id;
/**
* 文档标题
*/
private String title;
/**
* 文档内容
*/
private String content;
}
# ② 创建查询 mapper
public interface DocumentMapper extends BaseEsMapper<Document> {
}
# ③ SpringBoot 配置扫描 EsMapper 实现
@EsMapperScan("com.pig4cloud.pigx.es.mapper")
# ④ API 调用
public void testCreateIndex() {
// 测试创建索引,框架会根据实体类及字段上加的自定义注解一键帮您生成索引。需要确保索引托管模式处于manual手动挡(默认处于此模式),若为自动挡则会冲突。
boolean success = documentMapper.createIndex();
}
public void testInsert() {
// 测试插入数据
Document document = new Document();
document.setTitle("老汉");
document.setContent("推*技术过硬");
int successCount = documentMapper.insert(document);
}
public void testSelect() {
// 测试查询,写法和MP一样,可以用链式,也可以非链式,根据使用习惯灵活选择即可。
String title = "老汉";
Document document = EsWrappers.lambdaChainQuery(documentMapper)
.eq(Document::getTitle, title)
.one();
System.out.println(document);
}
# 高级用法
Easy-Es(简称 EE)是一款基于 ElasticSearch(简称 Es)官方提供的 RestHighLevelClient 打造的 ORM 开发框架,在 RestHighLevelClient 的基础上,只做增强不做改变,为简化开发、提高效率而生。您如果有用过 Mybatis-Plus(简称 MP),那么您基本可以零学习成本直接上手 EE。EE 是 MP 的 Es 平替版,在有些方面甚至比 MP 更简单,同时也融入了更多 Es 独有的功能,助力您快速实现各种场景的开发。
👉🏻 👉🏻 👉🏻 👉🏻 更多使用用法参考官方文档 (opens new window)