ElasticSearch之RestClient笔记

1. ElasticSearch

1.1 倒排索引 

 

1.2 ElasticSearch和Mysql对比 

 1.3 RestClient操作

导入依赖

        <dependency>
            <groupId>org.elasticsearch.client</groupId>
            <artifactId>elasticsearch-rest-high-level-client</artifactId>
            <version>7.15.0</version>
        </dependency>

并设置 

<elasticsearch.version>7.15.0</elasticsearch.version>

添加ElasticSearch配置

@Configuration
public class ElasticSearchConfig {
    @Bean
    public RestHighLevelClient restHighLevelClient(){
        RestHighLevelClient client=new RestHighLevelClient(
                RestClient.builder(new HttpHost("127.0.0.1",9200,"http"))
        );
        return client;
    }
}

索引的创建,判断是否存在,删除

  CreateIndexRequest createIndexRequest=new CreateIndexRequest("test");
        restHighLevelClient.indices().create(createIndexRequest, RequestOptions.DEFAULT);
        //判断某个索引库是否存在
        GetIndexRequest getIndexRequest=new GetIndexRequest("test");
        boolean exists = restHighLevelClient.indices().exists(getIndexRequest, RequestOptions.DEFAULT);
        System.out.println(exists);
        //删除某个索引库
        DeleteIndexRequest deleteIndexRequest=new DeleteIndexRequest("test");
        restHighLevelClient.indices().delete(deleteIndexRequest,RequestOptions.DEFAULT);

添加文档

  IndexRequest in = new IndexRequest("test").id("1").source("{\n" +
                "   \"username\":\"admin\",\n" +
                "   \"password\":\"admin\"\n" +
                "}", XContentType.JSON);
        restHighLevelClient.index(in,RequestOptions.DEFAULT);

查找文档

 GetRequest getRequest=new GetRequest("test","1");
        GetResponse getResponse = restHighLevelClient.get(getRequest, RequestOptions.DEFAULT);
        System.out.println(getResponse.getSourceAsString());

更新文档

//全量更新,再次写入id一样的文档,就会删除旧文档,添加新文档
        IndexRequest in = new IndexRequest("test").id("1").source("{\n" +
                "   \"username\":\"admin\",\n" +
                "   \"password\":\"helloworld\"\n" +
                "}", XContentType.JSON);
        restHighLevelClient.index(in,RequestOptions.DEFAULT);


UpdateRequest updateRequest=new UpdateRequest("test","1");
        updateRequest.doc(
                "password","hello"
        );
        restHighLevelClient.update(updateRequest,RequestOptions.DEFAULT);

删除文档

  DeleteRequest deleteRequest=new DeleteRequest("test","1");
        restHighLevelClient.delete(deleteRequest,RequestOptions.DEFAULT);

批量导入文档

  BulkRequest bulkRequest=new BulkRequest();
        bulkRequest.add(new IndexRequest("test").id("2").source("{\n" +
                "   \"username\":\"hello\",\n" +
                "   \"password\":\"hello\"\n" +
                "}",XContentType.JSON));
        bulkRequest.add(new IndexRequest("test").id("3").source("{\n" +
                "   \"username\":\"world\",\n" +
                "   \"password\":\"world\"\n" +
                "}",XContentType.JSON));
        restHighLevelClient.bulk(bulkRequest,RequestOptions.DEFAULT);

相关推荐

  1. ElasticSearch 学习、实践笔记

    2023-12-26 16:46:03       49 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-26 16:46:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-26 16:46:03       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-26 16:46:03       82 阅读
  4. Python语言-面向对象

    2023-12-26 16:46:03       91 阅读

热门阅读

  1. 视觉SLAM十四讲|【二】李群与李代数

    2023-12-26 16:46:03       49 阅读
  2. Git 的基本概念和使用方式

    2023-12-26 16:46:03       58 阅读
  3. docker-compose 安装gitlab

    2023-12-26 16:46:03       63 阅读
  4. Verilog 14: 阻塞和非阻塞赋值的异同

    2023-12-26 16:46:03       43 阅读
  5. 【Netty】案例-群聊天室实现

    2023-12-26 16:46:03       48 阅读
  6. LINUX自启动线程学习笔记

    2023-12-26 16:46:03       59 阅读
  7. postgres数据库安装

    2023-12-26 16:46:03       61 阅读
  8. 接口 VS 枚举,如何管理常量?

    2023-12-26 16:46:03       46 阅读
  9. 6-2 递归求阶乘和

    2023-12-26 16:46:03       64 阅读
  10. BindingData涉及的三个关键元素:数据源 路径 目标

    2023-12-26 16:46:03       53 阅读