0. 简介
https://www.elastic.co/cn/what-is/elasticsearch
全文搜索属于最常见的需求,开源的 Elasticsearch 是目前全文搜索引擎的首选。它可以快速地储存、搜索和分析海量数据。维基百科、Stack Overflow、Github 都采用它。
Elastic 的底层是开源库 Lucene。但是,你没法直接用 Lucene,必须自己写代码去调用它的接口。Elastic 是 Lucene 的封装,提供了 REST API 的操作接口,开箱即用。REST API:天然的跨平台。
1. 基本概念
- index(索引)相当于MySQL中的Database
- Type(类型)相当于MySQL中的表
- Document(文档) 相当于表中的内容
2. 倒排索引机制
Elasticsearch 使用倒排索引(Inverted Index)机制来支持快速的全文搜索和高效的搜索引擎功能。倒排索引是一种数据结构,它将文档中的每个单词映射到包含该单词的文档列表,以及该单词在每个文档中的位置信息。
以下是倒排索引的工作原理:
-
分词:在建立倒排索引之前,文本被分割成单词或术语,这个过程称为分词。分词可以根据特定的分析器和标记化规则进行,以确保准确的单词提取。
-
构建索引:对于每个文档,将分词后的单词与文档的唯一标识符关联起来,并记录每个单词在文档中的位置信息。这个过程称为构建索引或创建倒排索引。
-
倒排索引表:倒排索引表是一个映射结构,它将每个单词映射到包含该单词的文档列表。对于每个单词,可以获取相关的文档列表。
-
搜索:当执行搜索查询时,Elasticsearch 将查询词(或短语)进行分词,然后在倒排索引表中查找匹配的单词,并获取相关的文档列表。使用倒排索引,可以快速确定哪些文档包含查询词,并按相关性排序结果。
倒排索引在搜索引擎中的好处是,它可以在很短的时间内定位包含特定词语的文档,从而实现高效的全文搜索。此外,倒排索引还支持其他功能,如词项权重计算、短语匹配、聚合和过滤等。
Elasticsearch 使用倒排索引作为其核心索引机制,并通过高度优化和分布式处理来提供快速和可伸缩的搜索功能。
3. 安装
3.1 下载镜像
docker pull elasticsearch:7.4.2 存储和检索数据
docker pull kibana:7.4.2 可视化检索数据
3.2 运行容器
cd /usr/local/docker
mkdir elasticsearch
mkdir config
mkdir data
cd config
echo "http.host:0.0.0.0" >> elasticsearch.yml
标签:倒排,单词,索引,文档,elasticsearch,分词
From: https://www.cnblogs.com/cxpress/p/17479798.html