目录
一、Elasticsearch的介绍:
二、正向索引和倒排索引
1、正向索引
2、倒排索引
3、索引(index) :相同类型的文档的集合
4、映射(mapping):索引中文档的字段约束信息,类似表的结构约束
一、Elasticsearch的介绍:
-
Elasticsearch是一个全文搜索引擎,建立在Lucene搜索库之上。
-
Elasticsearch是一个分布式系统,可以处理大量数据、高并发和高可扩展性。
-
Elasticsearch可以对不同类型的数据进行搜索和分析,包括文本、数字和坐标数据等。
-
Elasticsearch支持近实时搜索,可以将数据在几秒钟内索引到搜索引擎中。
-
Elasticsearch可以通过简单的REST API进行搜索和查询,可以使用各种编程语言进行开发和集成。
-
Elasticsearch提供了强大的搜索和过滤功能,包括全文搜索、精确搜索、模糊搜索、聚合和过滤器等。
-
Elasticsearch可以与其他开源软件集成,如Logstash、Kibana和Beats等,构建完整的日志分析和数据可视化平台。
-
Elasticsearch的社区活跃,提供了大量的文档、教程和支持资源,可以帮助开发者更好地使用和开发Elasticsearch。
二、正向索引和倒排索引
1、正向索引
正向索引是指从左往右,以0开始递增的索引方式,也是最常用的索引方式。例如,在一个字符串"Hello, world!"中,正向索引从0开始,可以表示为:
H | e | l | l | o | , | w | o | r | l | d | ! | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
在下面的例子中,程序需要一个个的查表,效率低下。
2、倒排索引
- 倒排索引是一种数据结构,它将文档中的每个单词或术语映射到包含该单词或术语的文档列表中。
- 这样就可以快速地通过单词或术语来查找包含它们的所有文档。
- 倒排索引可用于全文搜索引擎,文档管理系统等。
- 其优点是快速的搜索速度,但缺点是需要较高的存储空间和复杂的更新逻辑。
文档( document) :每条数据就是一个文档
词条( term) :文档按照语义分成的词语
以下是倒排索引的示意图:
将一个title分解成为几个具有意义的词语,并将含有该词的title编号存入倒排索引中。
3、索引(index) :相同类型的文档的集合
- 索引可以被理解为一种数据结构,它可以将文本或其他类型的数据组织起来,以便于快速查找、访问和处理。
- 在计算机科学和信息技术领域,索引通常用于对大量数据进行高效的查询和搜索。
- 例如,搜索引擎中的网页索引,数据库中的索引等。
4、映射(mapping):索引中文档的字段约束信息,类似表的结构约束
- 映射可以被理解为将一种数据形式转换为另一种数据形式的过程。
- 在索引的情境下,映射通常是将索引词或术语映射到包含这些词或术语的文档列表。
- 例如,在搜索引擎中,当用户输入关键词时,搜索引擎会将这些关键词映射到包含这些关键词的网页列表,然后返回给用户。
在文本处理和信息检索中,索引和映射通常是紧密相关的。通常会使用倒排索引的方法,将每个单词或术语映射到包含该单词或术语的文档列表。这种映射方式可以使得检索和查询更加高效。