0
点赞
收藏
分享

微信扫一扫

elasticsearch的安装与使用

慎壹 2022-03-24 阅读 159

安装

在官网上下载elasticsearch压缩包,这里是使用的是7.8.0版本的,使用的环境是windows系统.
官网:[https://www.elastic.co/cn/elasticsearch/]
解压缩之后直接启动即可(bin目录下的elasticsearch.bat)
启动bat程序成功显示
浏览器输入localhost:1001(我这里设置的端口号是1001,可以在config/yml配置文件中修改,默认端口是9200
浏览器输入localhost:1001(我这里设置的端口号是1001,可以在config/yml配置文件中修改,默认端口是9200)

新建springBoot项目

添加依赖

<!--        es配置开始-->
        <dependency>
            <groupId>org.elasticsearch</groupId>
            <artifactId>elasticsearch</artifactId>
            <version>7.8.0</version>
        </dependency>

        <dependency>
            <groupId>org.elasticsearch.client</groupId>
            <artifactId>elasticsearch-rest-high-level-client</artifactId>
            <version>7.8.0</version>
        </dependency>
<!--        es配置结束-->

写一个main函数

创建客户端

RestHighLevelClient esClient = new RestHighLeveClient(
	RestClient.builder(new HttpHost("localhost",port:1001,"http"))
);

创建索引

CreateIndexRequest user = new CreateIndexRequest("user");
CreateIndexResponse createIndexResponse = esClient.indices().create(user,RequestOption.DEFAULT);

响应状态
boolean ackonwledged = createIndexResponse.isAcknowledged();

查询索引

GetIndexRequest user1 = new GetIndexRequest("user");
GetIndexReponse getIndexReponse = esClient.indices().get(user1,RequestOption.DEFAULT);

System.out.println(getIndexReponse.getAliases());
System.out.println(getIndexReponse.getSettings());
System.out.println(getIndexReponse.getMappings());

删除索引


DeleteIndexRequest request = new DeleteIndexRequest("user");
AcknowledgedResponse delete = esClient.indices().delete(request,RequestOptions.DEFAULT);
**响应状态**
System.out.println(delete.isAcknowledged());

插入数据


IndexRequest requestIndex = new IndexRequest();
requestIndex.index("user").id("1001");//id号(自定义)

User user2 = new User(){{
	setName("zhangsan");
	setAge(20);
	setSex("男");
}};

//向ES插入数据必须是JSON格式的
String writeValueAsString = new ObjectMapper().writeValueAsString(user2);
requestIndex.source(writeValueAsString,XContentType.JSON);
IndexResponse index = esClient.index(requestIndex,RequestOptions.DEFAULT);
System.out.println(index.getResult());

修改数据


        UpdateRequest updateRequest = new UpdateRequest();
        updateRequest.index("user").id("1001");
        updateRequest.doc(XContentType.JSON,"sex","女");

        UpdateResponse update = esClient.update(updateRequest, RequestOptions.DEFAULT);

        System.out.println(update.getResult());

查询数据


        GetRequest getRequest = new GetRequest();
        getRequest.index("user").id("1001");
        GetResponse documentFields = esClient.get(getRequest, RequestOptions.DEFAULT);

        System.out.println(documentFields.getSourceAsString());

删除


        DeleteRequest deleteRequest = new DeleteRequest();
        deleteRequest.index("user").id("1001");

        DeleteResponse delete1 = esClient.delete(deleteRequest, RequestOptions.DEFAULT);
        System.out.println(delete1.getResult());

批量插入


        BulkRequest bulkRequest = new BulkRequest();

        bulkRequest.add(new IndexRequest().index("user").id("1001").source(XContentType.JSON,"name","zhangsan"));
        bulkRequest.add(new IndexRequest().index("user").id("1002").source(XContentType.JSON,"name","zhangsan"));
        bulkRequest.add(new IndexRequest().index("user").id("1003").source(XContentType.JSON,"name","zhangsan"));

        BulkResponse responses = esClient.bulk(bulkRequest, RequestOptions.DEFAULT);

        System.out.println(responses.getTook());//执行时间
        System.out.println(Arrays.toString(responses.getItems()));//在批量操作中执行的每个操作的项目

批量删除

 DeleteRequest deleteRequest1 = new DeleteRequest();

        bulkRequest.add(new DeleteRequest().index("user").id("1001"));
        bulkRequest.add(new DeleteRequest().index("user").id("1002"));
        bulkRequest.add(new DeleteRequest().index("user").id("1003"));

        BulkResponse responsesDele = esClient.bulk(bulkRequest, RequestOptions.DEFAULT);

        System.out.println(responses.getTook());//执行时间
        System.out.println(Arrays.toString(responses.getItems()));//在批量操作中执行的每个操作的项目
        

//关闭客户端
esClient.close();

举报

相关推荐

0 条评论