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


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

    提示词:

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

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

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

     
    
    1. xml<dependency>
    2. <groupId>org.elasticsearch.client</groupId>
    3. <artifactId>elasticsearch-rest-high-level-client</artifactId>
    4. <version>7.15.0</version>
    5. </dependency>

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

     
    
    1. java@Configuration
    2. public class ElasticsearchConfig {
    3. @Value("${elasticsearch.host}")
    4. private String host;
    5. @Value("${elasticsearch.port}")
    6. private int port;
    7. @Value("${elasticsearch.username}")
    8. private String username;
    9. @Value("${elasticsearch.password}")
    10. private String password;
    11. @Bean
    12. public RestHighLevelClient client() {
    13. return new RestHighLevelClient(
    14. RestClient.builder(new HttpHost(host, port, "http"), new HttpHost(host, port, "http"))
    15. .setHttpClientConfigCallback(httpClientBuilder -> {
    16. httpClientBuilder.setDefaultCredentialsProvider(CredentialsProviderBuilder.create()
    17. .setUsername(username)
    18. .setPassword(password)
    19. .build());
    20. return httpClientBuilder;
    21. }));
    22. }
    23. }

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

     
    
    1. javapublic interface ElasticsearchRepository {
    2. @Query("{\"match\": {\"${idField}\": \"?0\"}}")
    3. Optional<Object> findById(String id);
    4. default void index(Object document) {
    5. IndexRequest request = new IndexRequest(document);
    6. client().index(request, RequestOptions.DEFAULT);
    7. }
    8. default void deleteById(String id) {
    9. DeleteRequest request = new DeleteRequest(id);
    10. client().delete(request, RequestOptions.DEFAULT);
    11. }
    12. }

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

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

     
    
    1. java@Service
    2. public class ElasticsearchService implements ElasticsearchRepository {
    3. @Override
    4. public Optional<Object> findById(String id) {
    5. return client().get(new GetRequest(id), new AbstractResponseEntityWrapper<Object>() {
    6. @Override
    7. protected Object bodyToEntity(Response response) throws IOException {
    8. return response.getEntity();
    9. }
    10. }).optional();
    11. }
    12. }

    对比到sider:

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

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

    org.springframework.boot spring-boot-starter-data-elasticsearch

    然后,创建一个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 { List 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 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的简单示例程序。你可以根据自己的需求进一步扩展和定制。

     ----------------------------

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

  • 相关阅读:
    网关gateway-88
    【算法刷题】第一篇——哈希
    KingbaseESV8R6等待事件之lwlock buffer_content
    uboot启动流程-board_init_r函数执行过程
    go进行大文件的分块并发处理
    解决Github上的README无法显示图片
    JavaSE | 初始Java(九) | 包的使用
    Java基础查漏补缺(个人向)
    这怎么回事?宝宝边吃母乳边用手推妈妈,宝宝的心思知多少
    柯西中值定理习题
  • 原文地址:https://blog.csdn.net/jiao_zg/article/details/132642180