用springboot+elasticserach7的demo,对比sider和百度ai的异同

对比aigc引擎:sider chatgpt3.5和百度ai

提示词:

springboot2.5,连接elasticsearch7的demo,要有基本的操作,用模板方法

以下是一个使用Spring Boot 2.5连接Elasticsearch 7的示例代码,包括基本的操作方法:

首先,需要在pom.xml文件中添加Elasticsearch的依赖:

复制代码
复制代码
xml`<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>7.15.0</version>
</dependency>`

然后,创建一个Spring Boot应用程序并添加以下配置:

复制代码
复制代码
java`@Configuration
public class ElasticsearchConfig {

@Value("${elasticsearch.host}")
private String host;

@Value("${elasticsearch.port}")
private int port;

@Value("${elasticsearch.username}")
private String username;

@Value("${elasticsearch.password}")
private String password;

@Bean
public RestHighLevelClient client() {
return new RestHighLevelClient(
RestClient.builder(new HttpHost(host, port, "http"), new HttpHost(host, port, "http"))
.setHttpClientConfigCallback(httpClientBuilder -> {
httpClientBuilder.setDefaultCredentialsProvider(CredentialsProviderBuilder.create()
.setUsername(username)
.setPassword(password)
.build());
return httpClientBuilder;
}));
}
}`

接下来,创建一个ElasticsearchRepository接口,用于定义基本的Elasticsearch操作方法:

复制代码
复制代码
java`public interface ElasticsearchRepository {

@Query("{\"match\": {\"${idField}\": \"?0\"}}")
Optional<Object> findById(String id);

default void index(Object document) {
IndexRequest request = new IndexRequest(document);
client().index(request, RequestOptions.DEFAULT);
}

default void deleteById(String id) {
DeleteRequest request = new DeleteRequest(id);
client().delete(request, RequestOptions.DEFAULT);
}
}`

其中,${idField}是用于匹配文档ID的占位符,需要根据具体情况进行替换。在示例中,我们使用Optional来处理查询结果,以便在找不到文档时返回空值。index()deleteById()方法分别用于将文档索引到Elasticsearch和删除具有指定ID的文档。这些方法都是默认方法,因此可以直接在类中调用它们。

最后,我们需要创建一个实现了ElasticsearchRepository接口的具体实现类,例如:

复制代码
复制代码
java`@Service
public class ElasticsearchService implements ElasticsearchRepository {

@Override
public Optional<Object> findById(String id) {
return client().get(new GetRequest(id), new AbstractResponseEntityWrapper<Object>() {
@Override
protected Object bodyToEntity(Response response) throws IOException {
return response.getEntity();
}
}).optional();
}
}`

对比到sider:

下面是一个使用Spring Boot 2.5连接Elasticsearch 7的示例程序,包括基本的功能,使用模板方法:

首先,确保你的项目中添加了以下依赖:

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-elasticsearch</artifactId> </dependency>

然后,创建一个Elasticsearch配置类,配置Elasticsearch连接信息:

@Configuration public class ElasticsearchConfig { @Value("{elasticsearch.host}") private String host; @Value("{elasticsearch.port}") private int port; @Bean public RestHighLevelClient elasticsearchClient() { RestClientBuilder builder = RestClient.builder(new HttpHost(host, port, "http")); RestHighLevelClient client = new RestHighLevelClient(builder); return client; } @Bean public ElasticsearchOperations elasticsearchTemplate() { return new ElasticsearchRestTemplate(elasticsearchClient()); } }

接下来,创建一个数据实体类,用于映射Elasticsearch中的文档:

@Document(indexName = "my_index", type = "my_type") public class MyEntity { @Id private String id; private String name; // getters and setters }

然后,创建一个数据访问接口,继承自ElasticsearchRepository,用于操作Elasticsearch中的文档:

public interface MyEntityRepository extends ElasticsearchRepository<MyEntity, String> { List<MyEntity> findByName(String name); }

最后,创建一个Spring Boot应用程序类,编写一些简单的示例代码:

@SpringBootApplication public class DemoApplication implements CommandLineRunner { @Autowired private MyEntityRepository myEntityRepository; public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } @Override public void run(String... args) throws Exception { // 创建一个文档 MyEntity entity = new MyEntity(); entity.setId("1"); entity.setName("John"); myEntityRepository.save(entity); // 根据名称查询文档 List<MyEntity> entities = myEntityRepository.findByName("John"); for (MyEntity e : entities) { System.out.println(e.getId() + ": " + e.getName()); } } }

在application.properties文件中配置Elasticsearch连接信息:

elasticsearch.host=localhost elasticsearch.port=9200

这样,就完成了一个使用Spring Boot连接Elasticsearch的简单示例程序。你可以根据自己的需求进一步扩展和定制。


分析:两者生成的代码本质上差别不大,每次刷新之后会有新的结果,有的时候结果也会差不多,在固定的格式上编写的代码,其实都差不多的。

相关推荐
羊群智妍19 分钟前
2026AI搜索时代:9成企业遭AI“隐身”,教你精准破局
百度·微信·微信公众平台·facebook·新浪微博
毕设源码-钟学长32 分钟前
【开题答辩全过程】以 基于Springboot的扶贫众筹平台为例,包含答辩的问题和答案
java·spring boot·后端
Java水解1 小时前
Spring Boot 4 升级指南:告别RestTemplate,拥抱现代HTTP客户端
spring boot·后端
神云瑟瑟1 小时前
spring boot拦截器获取requestBody的最佳实践
spring boot·拦截器·requestbody
暮色妖娆丶2 小时前
Spring 源码分析 BeanFactoryPostProcessor
spring boot·spring·源码
南极企鹅2 小时前
springBoot项目有几个端口
java·spring boot·后端
忧郁的Mr.Li3 小时前
SpringBoot中实现多数据源配置
java·spring boot·后端
暮色妖娆丶4 小时前
SpringBoot 启动流程源码分析 ~ 它其实不复杂
spring boot·后端·spring
Coder_Boy_4 小时前
Deeplearning4j+ Spring Boot 电商用户复购预测案例中相关概念
java·人工智能·spring boot·后端·spring
爱学英语的程序员4 小时前
面试官:你了解过哪些数据库?
java·数据库·spring boot·sql·mysql·mybatis