elasticsearch

0. 简介

https://www.elastic.co/cn/what-is/elasticsearch
全文搜索属于最常见的需求,开源的 Elasticsearch 是目前全文搜索引擎的首选。它可以快速地储存、搜索和分析海量数据。维基百科、Stack Overflow、Github 都采用它。

img

Elastic 的底层是开源库 Lucene。但是,你没法直接用 Lucene,必须自己写代码去调用它的接口。Elastic 是 Lucene 的封装,提供了 REST API 的操作接口,开箱即用。REST API:天然的跨平台。

1. 基本概念

  • index(索引)相当于MySQL中的Database
  • Type(类型)相当于MySQL中的表
  • Document(文档) 相当于表中的内容

2. 倒排索引机制

Elasticsearch 使用倒排索引(Inverted Index)机制来支持快速的全文搜索和高效的搜索引擎功能。倒排索引是一种数据结构,它将文档中的每个单词映射到包含该单词的文档列表,以及该单词在每个文档中的位置信息。

以下是倒排索引的工作原理:

  1. 分词:在建立倒排索引之前,文本被分割成单词或术语,这个过程称为分词。分词可以根据特定的分析器和标记化规则进行,以确保准确的单词提取。

  2. 构建索引:对于每个文档,将分词后的单词与文档的唯一标识符关联起来,并记录每个单词在文档中的位置信息。这个过程称为构建索引或创建倒排索引。

  3. 倒排索引表:倒排索引表是一个映射结构,它将每个单词映射到包含该单词的文档列表。对于每个单词,可以获取相关的文档列表。

  4. 搜索:当执行搜索查询时,Elasticsearch 将查询词(或短语)进行分词,然后在倒排索引表中查找匹配的单词,并获取相关的文档列表。使用倒排索引,可以快速确定哪些文档包含查询词,并按相关性排序结果。

倒排索引在搜索引擎中的好处是,它可以在很短的时间内定位包含特定词语的文档,从而实现高效的全文搜索。此外,倒排索引还支持其他功能,如词项权重计算、短语匹配、聚合和过滤等。

Elasticsearch 使用倒排索引作为其核心索引机制,并通过高度优化和分布式处理来提供快速和可伸缩的搜索功能。

3. 安装

3.1 下载镜像

docker pull elasticsearch:7.4.2 存储和检索数据
docker pull kibana:7.4.2 可视化检索数据

3.2 运行容器

3.2.1 elasticsearch

cd /usr/local/docker
mkdir elasticsearch
mkdir config
mkdir data
cd config
echo "http.host: 0.0.0.0" >> elasticsearch.yml

chmod -R 777 elasticsearch

docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx512m" \
-v /usr/local/docker/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /usr/local/docker/elasticsearch/data:/usr/share/elasticsearch/data \
-v /usr/local/docker/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.4.2

注意 http.host中间的冒号需要加上空格 文件夹需要设置权限

3.2.2 kibana

docker run --name kibana -e ELASTICSEARCH_HOSTS=http://localhost:9200 -p 5601:5601 \
-d kibana:7.4.2

http://localhost:9200 一定改为自己虚拟机的地址

4. 初步探索

4.1 _cat

GET /_cat/nodes:查看所有节点

GET /_cat/health:查看 es 健康状况

GET /_cat/master:查看主节点

GET /_cat/indices:查看所有索引 show databases;

4.2 索引一个文档(保存)

posted @   ChenLiuyu  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示