bboss-elasticsearch 开源项目教程
项目介绍
bboss-elasticsearch 是一个高性能的 Elasticsearch ORM 库,提供了丰富的功能来操作和访问 Elasticsearch。它类似于 MyBatis,使得 ES 小白可以快速上手。bboss 涵盖了 Elasticsearch 的所有功能,支持多集群多数据源、自动索引托管、多种分页机制、傻瓜级 CRUD、脚本、SQL、JDBC、高亮、权重、聚合、IP、GEO 地理位置、父子嵌套等。
项目快速启动
环境要求
- JDK 要求:JDK 1.8+
- Elasticsearch 版本要求:1.x, 2.x, 5.x, 6.x, 7.x, 8.x+
- Spring Boot 版本要求:1.x, 2.x, 3.x+
快速开始
-
克隆项目
git clone https://github.com/bbossgroups/bboss-elasticsearch.git
-
构建项目
cd bboss-elasticsearch ./gradlew build
-
配置 Elasticsearch 连接 在
application.properties
文件中添加以下配置:elasticsearch.host=localhost elasticsearch.port=9200
-
编写示例代码 创建一个简单的 Java 类来测试连接:
import org.bboss.elasticsearch.client.ClientInterface; import org.bboss.elasticsearch.client.ClientUtil; public class ElasticsearchExample { public static void main(String[] args) { ClientInterface client = ClientUtil.getClient("application.properties"); String response = client.executeHttp("/_cluster/health", ClientInterface.HTTP_GET); System.out.println(response); } }
应用案例和最佳实践
案例一:数据采集与流批一体化处理
bboss 提供了强大的数据采集和处理功能,支持流批一体化处理。以下是一个简单的示例:
import org.bboss.elasticsearch.client.ClientInterface;
import org.bboss.elasticsearch.client.ClientUtil;
public class DataCollectionExample {
public static void main(String[] args) {
ClientInterface client = ClientUtil.getClient("application.properties");
String indexName = "my_index";
String typeName = "my_type";
String jsonData = "{\"name\":\"John Doe\",\"age\":30}";
client.addDocument(indexName, typeName, jsonData);
}
}
案例二:Spring Boot 集成
bboss 可以轻松集成到 Spring Boot 项目中。以下是一个简单的示例:
-
添加依赖 在
pom.xml
中添加以下依赖:<dependency> <groupId>org.bboss</groupId> <artifactId>bboss-elasticsearch</artifactId> <version>最新版本</version> </dependency>
-
配置文件 在
application.properties
中添加以下配置:elasticsearch.host=localhost elasticsearch.port=9200
-
编写示例代码 创建一个简单的 Spring Boot 应用:
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.bboss.elasticsearch.client.ClientInterface; import org.bboss.elasticsearch.client.ClientUtil; @SpringBootApplication public class ElasticsearchSpringBootApplication { public static void main(String[] args) { SpringApplication.run(ElasticsearchSpringBootApplication.class, args); ClientInterface client = ClientUtil.getClient("application.properties"); String response = client.executeHttp("/_cluster/health", ClientInterface.HTTP_GET); System.out.println(response); } }
典型生态项目
生态项目一:数据采集与处理
bboss 提供了完整的数据采集和处理解决方案,支持多种数据源和数据目标,包括文件、