百日筑基第十二天-入门Elasticsearch

百日筑基第十二天-入门Elasticsearch

Elasticsearch 是什么

  • Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎。

安装 Elasticsearch

1)bin 目录下是一些脚本文件,包括 Elasticsearch 的启动执行文件。

2)config 目录下是一些配置文件。

3)jdk 目录下是内置的 Java 运行环境。

4)lib 目录下是一些 Java 类库文件。

5)logs 目录下会生成一些日志文件。

6)modules 目录下是一些 Elasticsearch 的模块。

7)plugins 目录下可以放一些 Elasticsearch 的插件。

直接双击 bin 目录下的 elasticsearch.bat 文件就可以启动 Elasticsearch 服务了。

为了确认 Elasticsearch 有没有启动成功,可以在浏览器的地址栏里输入 http://localhost:9200 进行查看(9200 是 Elasticsearch 的默认端口号)。

安装 Kibana

  • 通过 Kibana,我们可以对 Elasticsearch 服务进行可视化操作,就像在 Linux 操作系统下安装一个图形化界面一样。

  • 下载:https://www.elastic.co/cn/downloads/kibana

  • 进入 bin 目录下,双击运行 kibana.bat 文件,启动 Kibana 服务。

  • 在浏览器地址栏输入 http://localhost:5601 查看 Kibana 的图形化界面。

Elasticsearch 的关键概念

和mysql类比,也比较好理解,向 Elasticsearch 中存储数据,其实就是向 Elasticsearch 中的 index 下面的 type 中存储 JSON 类型的数据。

在 Java 中使用 Elasticsearch

第一步,在项目中添加 Elasticsearch 客户端依赖:

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

第二步,新建测试类 ElasticsearchTest:

java 复制代码
public class ElasticsearchTest {
    public static void main(String[] args) throws IOException {

        RestHighLevelClient client = new RestHighLevelClient(
                RestClient.builder(
                        new HttpHost("localhost", 9200, "http")));

        IndexRequest indexRequest = new IndexRequest("writer")
                .id("1")
                .source("name", "不飞",
                        "age", 25,
                        "memo", "炼器初期蝼蚁");
        IndexResponse indexResponse = client.index(indexRequest, RequestOptions.DEFAULT);

        GetRequest getRequest = new GetRequest("writer", "1");

        GetResponse getResponse = client.get(getRequest, RequestOptions.DEFAULT);
        String sourceAsString = getResponse.getSourceAsString();

        System.out.println(sourceAsString);
        client.close();
    }
}

1)RestHighLevelClient 为 Elasticsearch 提供的 REST 客户端,可以通过 HTTP 的形式连接到 Elasticsearch 服务器,参数为主机名和端口号。

有了 RestHighLevelClient 客户端,我们就可以向 Elasticsearch 服务器端发送请求并获取响应。

2)IndexRequest 用于向 Elasticsearch 服务器端添加一个索引,参数为索引关键字,比如说"writer",还可以指定 id。通过 source 的方式可以向当前索引中添加文档数据源(键值对的形式)。

有了 IndexRequest 对象后,可以调用客户端的 index() 方法向 Elasticsearch 服务器添加索引。

3)GetRequest 用于向 Elasticsearch 服务器端发送一个 get 请求,参数为索引关键字,以及 id。

有了 GetRequest 对象后,可以调用客户端的 get() 方法向 Elasticsearch 服务器获取索引。getSourceAsString() 用于从响应中获取文档数据源(JSON 字符串的形式)。

好了,来看一下程序的输出结果:

text 复制代码
{"name":"不飞","age":25,"memo":"炼器初期蝼蚁"}
相关推荐
Kiling_07043 小时前
Java IO流:字节流实战与性能优化
java·开发语言·php
January12073 小时前
IDEA 快捷键
java·ide·intellij-idea
周杰伦fans3 小时前
C# 异常继承深度解析:从设计原则到 sealed 关键字的奥秘
java·jvm·c#
搬石头的马农3 小时前
从零配置Claude自动修Bug:6步打造全自动开发流程
java·人工智能·python·bug·ai编程
小马爱打代码4 小时前
Redis Key 过期后会立刻删除吗?过期删除与内存淘汰策略详解
java·redis·缓存
鱼鳞_4 小时前
苍穹外卖-Day10(Spring task)
java·后端·spring
雨落在了我的手上4 小时前
初始java(十七):常⽤⼯具类介绍
java·开发语言
志栋智能4 小时前
超自动化安全:构建智能安全运营的神经系统
大数据·运维·网络·人工智能·安全·自动化
凤凰院凶涛QAQ4 小时前
《Java版数据结构 & 集合类剖析》集合框架的封装设计与顺序表:“从 Iterable 到 ArrayList:集合框架的‘职业树“
java·开发语言·数据结构
孟华苏4 小时前
怎么快速排查内存泄漏问题
java·开发语言·python