elasticsearch_kibana搭建,通过Java High Level REST Client调用

Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr,也是基于Lucene。

Kibana 是一个免费且开放的用户界面,能够让您对 Elasticsearch 数据进行可视化,并让您在 Elastic Stack 中进行导航。您可以进行各种操作,从跟踪查询负载,到理解请求如何流经您的整个应用,都能轻松完成。

jdk安装可以看此文章

上面讲了两个程序Elasticsearch和kibana,以下是Elasticsearch和kibana全版本下载地址,根据各自的操作系统下载对应的版本

https://elasticsearch.cn/download/

这里下载elasticsearch-7.10.2-windows-x86_64 kibana-7.10.2-windows-x86_64

elasticsearch配置
elasticsearch的配置文件在config/elasticsearch.yml,删除前面的#号配置ip和端口,不删除就默认是本机

# ---------------------------------- Network -----------------------------------
#
# Set the bind address to a specific IP (IPv4 or IPv6):
#服务ip地址
#network.host: 192.168.0.1 
#
# Set a custom port for HTTP:
#服务端口地址
#http.port: 9200
#
# For more information, consult the network module documentation.

通过bin/elasticsearch.bat 启动服务
在这里插入图片描述
输入地址查看到图片信息证明启动成功

kibana配置
kibana配置文件在kibana-7.10.2-windows-x86_64\config\kibana.yml
设置Elasticsearch的地址,i18n.locale: "zh-CN"修改成中文版
bin\kibana.bat 启动。

elasticsearch.hosts: ["http://localhost:9200"]
i18n.locale: "zh-CN"

启动以后的界面

在这里插入图片描述
在这里插入图片描述
点击开发工具可以执行elasticsearch命令
在这里插入图片描述
创建文档时自动创建索引
当向一个不存在的索引中写入文档时,会自动创建索引。也可以用来修改索引.

POST student/_doc/1
{
  "name": "张三"
}

_doc/1 这个1可以当主键使用

POST student/_doc/1
{
  "name": "张三1"
}

删除索引

DELETE student

Java High Level REST Client调用

<!--es客户端,不使用springboot封装的客户端 -->
		<dependency>
			<groupId>org.elasticsearch.client</groupId>
			<artifactId>elasticsearch-rest-high-level-client</artifactId>
			<version>7.5.2</version>
		</dependency>
		<dependency>
			<groupId>org.elasticsearch</groupId>
			<artifactId>elasticsearch</artifactId>
			<version>7.5.2</version>
		</dependency>
		<dependency>
			<groupId>org.elasticsearch.client</groupId>
			<artifactId>elasticsearch-rest-client</artifactId>
			<version>7.6.2</version>
		</dependency>
package com.zcdsj.ElasticSearch;

import com.alibaba.fastjson.JSON;
import com.zcdsj.bean.TCarPassBak;

import lombok.extern.slf4j.Slf4j;

import org.elasticsearch.action.delete.DeleteRequest;
import org.elasticsearch.action.delete.DeleteResponse;
import org.elasticsearch.action.get.GetRequest;
import org.elasticsearch.action.get.GetResponse;
import org.elasticsearch.action.index.IndexRequest;
import org.elasticsearch.action.index.IndexResponse;
import org.elasticsearch.action.update.UpdateRequest;
import org.elasticsearch.action.update.UpdateResponse;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.common.xcontent.XContentType;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.io.IOException;
import java.util.Date;
 
@Slf4j
@Service
public class IndexService {
 
    @Autowired
    private RestHighLevelClient restHighLevelClient;
 
    /**
     * 增加文档信息
     */
    public void addDocument(TCarPassBak tCarPassBak) {
        try {
            // 创建索引请求对象
            IndexRequest indexRequest = new IndexRequest("t_car", "doc", tCarPassBak.getId());

            // 将对象转换为 byte 数组
            byte[] json = JSON.toJSONBytes(tCarPassBak);
            // 设置文档内容
            indexRequest.source(json, XContentType.JSON);
            // 执行增加文档
            IndexResponse response = restHighLevelClient.index(indexRequest, RequestOptions.DEFAULT);
            log.info("创建状态:{}", response.status());
        } catch (Exception e) {
            log.error("", e);
        }
    }
 
    /**
     * 获取文档信息
     */
    public void getDocument() {
        try {
            // 获取请求对象
            GetRequest getRequest = new GetRequest("student", "_doc", "1");
            // 获取文档信息
            GetResponse getResponse = restHighLevelClient.get(getRequest, RequestOptions.DEFAULT);
            // 将 JSON 转换成对象
            if (getResponse.isExists()) {
            	TCarPassBak userInfo = JSON.parseObject(getResponse.getSourceAsBytes(), TCarPassBak.class);
                log.info("员工信息:{}", userInfo);
                System.out.println(userInfo);
            }
        } catch (IOException e) {
            log.error("", e);
        }
    }
 
//    /**
//     * 更新文档信息
//     */
//    public void updateDocument() {
//        try {
//            // 创建索引请求对象
//            UpdateRequest updateRequest = new UpdateRequest("mydlq-user", "doc", "1");
//            // 设置员工更新信息
//            UserInfo userInfo = new UserInfo();
//            userInfo.setSalary(200.00f);
//            userInfo.setAddress("北京市海淀区");
//            // 将对象转换为 byte 数组
//            byte[] json = JSON.toJSONBytes(userInfo);
//            // 设置更新文档内容
//            updateRequest.doc(json, XContentType.JSON);
//            // 执行更新文档
//            UpdateResponse response = restHighLevelClient.update(updateRequest, RequestOptions.DEFAULT);
//            log.info("创建状态:{}", response.status());
//        } catch (Exception e) {
//            log.error("", e);
//        }
//    }
 
    /**
     * 删除文档信息
     */
    public void deleteDocument() {
        try {
            // 创建删除请求对象
            DeleteRequest deleteRequest = new DeleteRequest("mydlq-user", "doc", "1");
            // 执行删除文档
            DeleteResponse response = restHighLevelClient.delete(deleteRequest, RequestOptions.DEFAULT);
            log.info("删除状态:{}", response.status());
        } catch (IOException e) {
            log.error("", e);
        }
    }
    
 
}

后续会在下一章写明springboot Java High Level REST Client 整合调用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值