Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >ElasticSearch基础:从倒排索引说起,快速认知ES

ElasticSearch基础:从倒排索引说起,快速认知ES

作者头像
云深i不知处
发布于 2022-01-05 06:19:06
发布于 2022-01-05 06:19:06
4.1K03
代码可运行
举报
文章被收录于专栏:测试基础测试基础
运行总次数:3
代码可运行

ElasticSearch基础:从倒排索引说起,快速认知ES

1 ElasticSearch认知

ElasticSearch(简称ES)是什么?按照 ElasticSearch官网 的定义,Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎。

很官方,但也很晦涩。所以,接下来我们尝试比较直白地去描述它。

1.1 关于搜索

首先,需要弄明白下面几个问题:

  1. 什么是搜索?
  2. 为什么数据库不适合处理搜索?
  3. 什么是全文检索和Lucene?

提到搜索,人们会立刻联想到在百度、谷歌上输入关键词获取相关的内容的场景。但搜索不等于百度,大部分APP支持的站内搜索更加大行其道。

数据库是储存和查询数据的利器,那么数据库是否适合做搜索呢?答案是不合适。第一个原因是,当数据库存储了大量数据后,查询效率大幅降低。

另外有些搜索场景,数据库也是不支持的,例如在下表中,我们试图通过“中国足球”这个关键词搜索数据,数据库是无法查询到相应内容的。

id

name

1

中国男子足球队

2

中国男子田径队

3

中国女子排球队

4

中国女子跳水队

1.2 倒排索引

什么是倒排索引?倒排索引也叫反向索引,我们通常理解的索引是通过key寻找value,与之相反,倒排索引是通过value寻找key,故而被称作反向索引。

下面我们用一个简单的例子描述一下倒排索引的作用过程:

假如现在有三份数据文档,内容分别是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Doc 1:Java is the best programming language

Doc 2:PHP is the best programming language

Doc 3:Javascript is the best programming language

为了创建索引,ES引擎通过分词器将每个文档的内容拆成单独的词(称之为词条,或term),再将这些词条创建成不含重复词条的排序列表,然后列出每个词条出现在哪个文档,结果如下:

term

Doc 1

Doc 2

Doc 3

Java

is

the

best

programming

language

PHP

Javascript

这种结构由文档中所有不重复的词的列表构成,对于其中每个词都有至少一个文档与与之关联。这种由属性值来确定记录的位置的结构就是倒排索引,带有倒排索引的文件被称为倒排文件。

将上表转为更直观的图片来展示倒排索引:

其中,几个核心术语需要着重理解:

  1. 词条(term):索引里面最小的存储和查询单元,对于英文来说是一个词,对于中文来说一般指分词后的一个词。
  2. 词典(Term Dictionary):也叫字典,是词条的组合。搜索引擎的通常索引单位是单词,单词词典是文档集合中出现过的所有单词构成的字符串集合,单词词典内每条索引项记载单词本身的一些信息以及指向倒排所有的指针。
  3. 倒排表(Post list):一个文档通常由多个词组成,倒排表记录的是某个词在哪些文档里出现过及出现的位置。每个记录称为一个倒排项(Posting),倒排表记录的不单单是文档编号,还记录了词频等信息。
  4. 倒排文件(Inverted File):所有单词的倒排列表往往顺序地存储在磁盘的某个文件里,这个文件被称之为倒排文件,倒排文件是存储倒排索引的物理文件。

词典和倒排表是 Lucene这种很重要的两种数据结构,是实现快速检索的重要基石。词典和倒排文件是分两部分存储的,词典在内存中而倒排文件存储在磁盘。

1.3 Lucene

至于Lucene,直白地说,它就是一个jar包,封装好了各种建立倒排索引、匹配索引进行搜索的各种算法。我们可以引入Lucene,基于它的API进行开发。

ElasticSearch就在Lucene的基础上实现的,对Lucene进行了良好的封装,简化开发,并提供了很多高级功能。

ElasticSearch生态

ElasticSearch 为快速检索和分析大数据而生,目前已形成丰富的生态。

例如目前比较流行的ELK体系:

  • Elasticsearch是位于Elastic堆栈核心的分布式搜索和分析引擎。
  • LogstashBeats有助于收集、聚合和丰富数据,并将其存储在Elasticsearch中。
  • Kibana使您能够以交互方式探索、可视化和共享对数据的见解,并管理和监视堆栈。

1.4 ES基本概念

要了解 Elasticsearch ,首先要先了解下面的几个专有名词:索引(Index)、类型(Type)、文档(Document)、映射(mapping)

既然 Elasticsearch 能够存储和查询数据,那么我们自然要将其和最具知名度的数据库-Mysql进行一番对比,两者之间可以通过下表做一个并不非常严谨的类比,主要是为了方便理解。

Mysql

Elasticsearch

索引(Index)

库(Database)

类型(Type)

表(Table)

文档(Document)

行(Row)

字段(Field)

列(Column)

映射(Mappings)

表结构(schema)

  • Index:索引,相当于关系数据库中的database概念,是一类数据的集合,是一个逻辑概念。
  • Type:类型,相当于数据库中的table概念,在6.0版本之前,一个Index中可以有多个type,7.0版本后彻底废弃多type,每个索引只能有一个type,即“ _doc”。这个概念就不用太关注了。
  • Document:文档,存储在ES中的主要实体叫文档,可以理解为关系型数据库中表的一行数据记录。每个文档由多个字段(field)组成。区别于关系型数据库的是,ES是一个非结构化的数据库,每个文档可以有不同的字段,并且有一个唯一标识。
  • Field:字段,存在于文档中,字段是包含数据的键值对,可以理解为Mysql一行数据的其中一列。
  • Mapping:映射,是对索引库中的索引字段及其数据类型进行定义,类似于关系型数据库中的表结构。ES默认动态创建索引和索引类型的Mapping。

ES和Mysql直观对比:

1.5 ES集群概念

Elasticsearch 设计上是天然支持分布式的,下面我们了解一下集群相关概念。

  • cluster:集群,一个ES集群由多个节点(node)组成, 每个集群都有一个共同的集群名称最为标识。
  • node:节点,一个ES实例即为一个节点,一台机器可以有多个节点。
  • shard:分片,如果某个索引包含大量数据,以至于一台机器无法存储,ES可以将一个索引中的数据切分为多个shard,分布在多台服务器上存储。这样,ES就可以横向扩展,存储更多数据,让搜索和分析等操作分布到多台服务器上去执行,提升吞吐量和性能。每个shard都是一个最小工作单元,承载部分数据,具有一个lucene实例和完整的建立索引、处理请求的能力。
  • replica:副本,就是shard的冗余备份,它可以防止数据丢失以及shard异常时负责容错和负载均衡

在实际生产中,ES通常与Mysql等存储系统联合使用,例如下面这个设计:

2 SpringBoot集成ES

Springboot集成ES非常方便,只要三步操作:

1、pom.xml添加依赖:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<dependency>
	<groupId>org.elasticsearch.client</groupId>
    <artifactId>elasticsearch-rest-high-level-client</artifactId>
    <version>7.8.0</version>
</dependency>
<dependency>
	<groupId>org.elasticsearch.client</groupId>
	<artifactId>elasticsearch-rest-client</artifactId>
	<version>7.8.0</version>
</dependency>
<dependency>
    <groupId>org.elasticsearch</groupId>
    <artifactId>elasticsearch</artifactId>
    <version>7.8.0</version>
</dependency>

2、application.yml增加配置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
elasticsearch:
  host: 11.50.36.97
  port: 9200

3、新建config类:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Configuration
@ConfigurationProperties(prefix = "elasticsearch")
@Data
public class ESConfig {

    private String host;

    private Integer port;

    @Bean(destroyMethod = "close")
    public RestHighLevelClient client(){
        return new RestHighLevelClient(RestClient.builder(new HttpHost(host, port)));
    }
}

写个测试方法测试一下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = DemoApplication.class)
@Slf4j
public class BasicTest {
    @Autowired
    private RestHighLevelClient client;

	 /**
     * 添加索引
     *
     * @throws IOException
     */
    @Test
    public void addIndex() throws IOException {
        //1.使用client获取操作索引对象
        IndicesClient indices = client.indices();
        //2.具体操作获取返回值
        //2.1 设置索引名称
        CreateIndexRequest createIndexRequest = new CreateIndexRequest("person");

        CreateIndexResponse createIndexResponse = indices.create(createIndexRequest, RequestOptions.DEFAULT);
        //3.根据返回值判断结果
        System.out.println(createIndexResponse);
    }
    
    /**
     * 查询所有的索引
     *
     * @throws IOException
     */
    @Test
    public void indexTest() throws IOException {
        GetAliasesRequest request = new GetAliasesRequest();
        GetAliasesResponse alias = client.indices().getAlias(request, RequestOptions.DEFAULT);

        Map<String, Set<AliasMetadata>> map = alias.getAliases();
        map.forEach((k, v) -> {
            if (!k.startsWith(".")) {
                System.out.println(k);
            }
        });
    }
}

3 ElasticSearch安装

3.1 下载与安装

下载地址:https://www.elastic.co/cn/downloads/elasticsearch

安装:

1、将压缩包上传到linux服务器到特定目录,比如 /export/test

2、解压压缩包:tar -zxvf elasticsearch-7.13.2-linux-x86_64.tar.gz

ES目录介绍:

  • bin:可执行文件在里面,运行es的命令就在这个里面,包含了一些脚本文件等
  • config:配置文件目录
  • JDKjava环境
  • lib:依赖的jar,类库
  • logs日志文件
  • modules:es相关的模块
  • plugins:可以自己开发的插件
  • data:自建目录,后面要用,用来放置索引

3.2 修改配置

首先,我们需要做一些系统配置,要使用有权限的用户,例如root用户。

1、配置用户

因为root用户不能直接运行ES,所以新增一个用户(如果有非root用户,直接用也可以)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
useradd es
passwd es 
chown -R es elasticsearch

2、设置最大句柄数(nofile)和最大进程数(nproc):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vim /etc/security/limits.conf

在末尾追加内容(已有的话忽略):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
*        soft       nofile        65536
*        hard       nofile        65536
*        soft       nproc         4096
*        hard       nproc         4096

3、调整vm.max_map_count的大小

max_map_count文件包含限制一个进程可以拥有的VMA(虚拟内存区域)的数量

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vim /etc/sysctl.conf

在文尾追加(已有的话则忽略此步):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vm.max_map_count=262144

执行以下命令使该配置生效:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sysctl -p

接下来,切换到刚刚创建的用户,修改ES配置文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
su es
vim config/elasticsearch.yml

主要修改以下几项:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 1. 修改集群名称
cluster.name: test-es
# 2. 修改当前的es节点名称
node.name: node-1
# 3. 修改data数据保存地址(按自己的实际路径填写)
path.data: /export/test/elasticsearch-7.13.2/data
# 4. 日志数据保存地址(按自己的实际路径填写)
path.logs: /export/test/elasticsearch-7.13.2/logs
# 5. 绑定es网络ip
network.host: 0.0.0.0
# 6. 修改初始化master节点
cluster.initial_master_nodes: ["node-1"]

启动es服务:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd bin
./elasticsearch

访问 http://192.168.1.13:9200/,出现以下信息,表示es启动成功。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
  "name" : "node-1",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "vMavXuuVTbmqykZpDEM0zQ",
  "version" : {
    "number" : "7.13.2",
    "build_flavor" : "default",
    "build_type" : "zip",
    "build_hash" : "4d960a0733be83dd2543ca018aa4ddc42e956800",
    "build_date" : "2021-06-10T21:01:55.251515791Z",
    "build_snapshot" : false,
    "lucene_version" : "8.8.2",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

设置后台启动:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
./bin/elasticsearch -d

3.3 配置Kibana

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

Kibana是Java应用,解压即可。解压后,进入文件目录的config目录中,编辑kibana.yml文件,修改该项:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 指向我们安装好的ES服务地址
elasticsearch.hosts: ["http://11.50.36.97:9200/"]

然后,进入bin目录,双击kibana.bat 即可启动。

以上是ElasticSearch基础的内容,后续将持续添加更多内容,敬请关注!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/10/30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【从入门到精通,教你如何安装ElasticSearch】Linux版本
Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。它提供可扩展的搜索,具有接近实时的搜索。ES本身扩展性很好,可以扩展到上百台服务器。ES也使用Java开发并使用Lucene作为核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文检索变得简单。
趣学程序-shaofeer
2023/09/09
1.1K0
【从入门到精通,教你如何安装ElasticSearch】Linux版本
详解Elastic Search高速搜索背后的秘密:倒排索引
首先,搜索引擎会对文档内容进行分词处理,将文本拆分成独立的单词或词组。然后,为每个单词或词组创建一个倒排列表,该列表记录了包含该单词或词组的所有文档的ID和该单词在文档中的位置信息(如偏移量、词频等)。
鸽芷咕
2025/05/20
1530
详解Elastic Search高速搜索背后的秘密:倒排索引
【Elasticsearch】Elasticsearch倒排索引详解
倒排索引是全文搜索引擎的核心数据结构,其主要作用是从文档中提取关键词,并建立关键词到文档的映射关系。这种结构与传统的正排索引(即文档到关键词的映射)相反,因此称为倒排索引。 在倒排索引中,每个关键词都关联着包含该关键词的文档列表,这使得搜索操作能够迅速定位包含特定关键词的文档,从而大幅提高查询效率。
屿小夏
2024/07/09
1.5K0
浅入ElasticSearch
•Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎
小炜同学
2022/09/23
3830
ElasticSearch7.6
ElasticSearch是一个实时分布式搜索和分析引擎,它让你以前所未有的速度处理大数据的可能 它用于全文搜索,结构化搜索,分析以及这三者混合使用 ElasticSearch是一个基于Apache Lucene™的开源搜索引擎。无论是在开源还是专有邻域,Lucene可以被认为是迄今为止最先进、性能最好的,功能最全的搜索引擎库。 但是。Lucene只是一个库。想要使用它,你必须使用java作为开发语言并将其直接集成到你的应用中,更糟糕的是,Lucene非常复杂,你需要更深入的了解检索的相关知识来理解它是如何工作的。 ElasticSearch也使用java开发并使用Lucene作为其核心来实现所有索引和功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文检索变得简单
JokerDJ
2023/11/27
3220
ElasticSearch7.6
深入解析Elasticsearch的内部数据结构和机制:行存储、列存储与倒排索引之倒排索引(三)
首先,我们需要了解传统的正向索引。在正向索引中,文档是按照它们在磁盘上的顺序进行存储的,每个文档都有一个与之关联的文档ID。如果我们要查找某个词在哪些文档中出现,就需要遍历整个文档集合,这显然是非常低效的。
公众号:码到三十五
2024/03/19
2K0
深入解析Elasticsearch的内部数据结构和机制:行存储、列存储与倒排索引之倒排索引(三)
Search - 一文入门ElasticSearch(节点、分片、CRUD、倒排索引、分词)
ElasticSearch是非常重要的检索工具,利用分词、索引(倒排索引)、分词从众多检索工具中脱颖而出,本章是入门基础学习篇内容。
stark张宇
2023/03/16
4.2K0
【搜索引擎:Elasticsearch】从0了解ES,整合springboot,京东搜索实战
SQL : like %冷环渊% 但是数据量一旦变大了,就会变慢,这个时候用索引, 也是只能快一些
冷环渊
2022/04/17
1.2K0
【搜索引擎:Elasticsearch】从0了解ES,整合springboot,京东搜索实战
Elasticsearch笔记(集群插件、kibana、什么是倒排索引)
倒排索引(Inverted Index)也叫反向索引,有反向索引必有正向索引。通俗地来讲,正向索引是通过key找value,反向索引则是通过value找key。
鱼找水需要时间
2023/02/16
4430
Elasticsearch笔记(集群插件、kibana、什么是倒排索引)
Spring Boot(三)集成ElasticSearch
ELK是Elasticsearch、Logstash、Kibana三大开源框架首字母大写简称。市面上也被成为Elastic Stack。其中Elasticsearch是一个基于Lucene、分布式、通过Restful方式进行交互的近实时搜索平台框 架。像类似百度、谷歌这种大数据全文搜索引擎的场景都可以使用Elasticsearch作为底层支持框架,可 见Elasticsearch提供的搜索能力确实强大,市面上很多时候我们简称Elasticsearch为es。Logstash是ELK 的中央数据流引擎,用于从不同目标(文件/数据存储/MQ)收集的不同格式数据,经过过滤后支持输出 到不同目的地(文件/MQ/redis/elasticsearch/kafka等)。Kibana可以将elasticsearch的数据通过友好 的页面展示出来,提供实时分析的功能。 市面上很多开发只要提到ELK能够一致说出它是一个日志分析架构技术栈总称,但实际上ELK不仅仅适用 于日志分析,它还可以支持其它任何数据分析和收集的场景,日志分析和收集只是更具有代表性。并非 唯一性。
HcodeBlogger
2020/07/14
1.4K0
Spring Boot(三)集成ElasticSearch
ElasticSearch7.6入门学习
笔记记录 B站狂神说Java的ElasticSearch课程:https://www.bilibili.com/video/BV17a4y1x7zq
Vincent-yuan
2022/05/06
1.5K0
ElasticSearch7.6入门学习
一文俯瞰Elasticsearch核心原理
Lucene是一种高性能、可伸缩的信息搜索(IR)库,在2000年开源,最初由鼎鼎大名的Doug Cutting开发,是基于Java实现的高性能的开源项目。Lucene采用了基于倒排表的设计原理,可以非常高效地实现文本查找,在底层采用了分段的存储模式,使它在读写时几乎完全避免了锁的出现,大大提升了读写性能。我们所熟知的Elasticsearch,Solr都是基于Lucene工具包进行开发的全文搜索引擎,因此理解Lucene也可以帮助我们更好的理解Elasticsearch原理。
大数据真好玩
2020/07/07
1K0
「Elasticsearch + Lucene」搜索引擎的架构、倒排索引和搜索过程
许多年前,一个名叫Shay Banon的开发者,带着新婚妻子去伦敦生活,在得知妻子想从事厨师工作后,准备利用自己所学为妻子开发一个食谱搜索引擎,他开始使用Lucene的一个早期版本。但是尝试之后,他发现直接使用Lucene给没有任何开发经验的妻子而言是非常困难的,因此Shay 开始对Lucene进行封装。不久他发布了他的第一个基于Lucene的用java编写的开源项目 Compass。后来Shay找到了一份跟高性能和分布式有关的工作,然后发现这份工作对实时、分布式搜索引擎的需求尤为突出,于是他决定重写Compass,把它变为一个独立的服务并取名Elasticsearch,再到后来Elasticsearch发布了第一个公开版本,从此以后,Elasticsearch已经成为了 Github 上最活跃的开源项目之一。据说,Shay的妻子还在等着她的食谱搜索引擎,而他已经在大公司忙的“一发不可收拾”…
一个会写诗的程序员
2020/09/10
1.7K0
「Elasticsearch + Lucene」搜索引擎的架构、倒排索引和搜索过程
ElasticSearch核心概念:倒排索引
ES使用的是一种称为倒排索引的结构,采用Lucene倒排索作为底层。这种结构适用于快速的全文搜索,一个索引由文档中所有不重复的列表构成,对于每一个词,都有一个包含它的文档列表。为了创建倒排索引。我们首先要将每个文档拆分成独立的词(或称为词条或者tokens),然后创建一个包含所有不重复的词条的排序列表。然后列出每个词条出现在哪个文档。
刘大猫
2024/11/02
1330
【ES三周年】分布式搜索索引elasticsearch快速入门
elasticsearch是一款非常强大的开源搜索引擎,具备非常多强大功能,可以帮助我们从海量数据中快速找到需要的内容
小小程序员
2023/04/28
1.3K0
【ES三周年】分布式搜索索引elasticsearch快速入门
全文搜索引擎Elasticsearch,这篇文章给讲透了
由于近期在公司内部做了一次分享,所以本篇主要是基于之前的博文的一个总结,希望通过这篇文章能让读者大致了解Elasticsearch是做什么的以及它的使用和基本原理。
大数据技术架构
2019/08/16
10K3
全文搜索引擎Elasticsearch,这篇文章给讲透了
ElasticSearch分布式搜索引擎——从入门到精通
elasticsearch是一款非常强大的开源搜索引擎,具备非常多强大功能,可以帮助我们从海量数据中快速找到需要的内容
不吃紫菜
2023/02/13
3.6K0
ElasticSearch分布式搜索引擎——从入门到精通
【Elasticsearch专栏 04】深入探索:Elasticsearch倒排索引中的词条是如何存储和管理
倒排索引中的词条存储和管理是构建高效搜索系统的关键部分。在Elasticsearch(简称ES)这样的现代搜索引擎中,词条的存储和管理被设计得十分复杂且高效,涉及多个组件和优化策略。下面将详细描述在ES中倒排索引的词条是如何存储和管理的,并提供相关的源码片段来帮助理解。
夏之以寒
2024/03/04
3800
Elasticsearch学习(一)什么是ELK?相关概念是什么?在虚拟机里面安装es,Kibana
ELK是Elasticsearch、Logstash、Kibana三个软件首字母。 Elasticsearch: 全文检索工具。和之前学习的Solr功能是类似的。 Kibana:页面管理工具。可以通过Kibana的管理界面操作Elasticsearch Logstash:日志收集的工具,通过此工具可以实现日志内容收集及格式转换。也就是将日志输入到这个里面,之后进行转换,再输出到Elasticsearch中,我们就可以在Elasticsearch中检索日志了。
一写代码就开心
2021/03/02
6350
Elasticsearch学习(一)什么是ELK?相关概念是什么?在虚拟机里面安装es,Kibana
Elasticsearch 如何做到快速检索 - 倒排索引的秘密
最近接触的几个项目都使用到了 Elasticsearch (以下简称 ES ) 来存储数据和对数据进行搜索分析,就对 ES 进行了一些学习。本文整理自我自己的一次技术分享。
肉眼品世界
2021/09/27
1.9K0
Elasticsearch 如何做到快速检索 - 倒排索引的秘密
推荐阅读
相关推荐
【从入门到精通,教你如何安装ElasticSearch】Linux版本
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验