一、什么是搜索引擎?
根据用户需求和一定算法,运用特定的策略检索出指定信息反馈给用户的一门检索技术。
二、为什么使用搜索引擎?和MySQL比有哪些优势?
1、性能更加强大,亿级数据可以做到瞬间响应。
2、匹配部分关键字可以查询出结果。
3、关键字之间可以不连续。
4、匹配到的关键字可以高亮显示。
5、写错一两个字母或汉字也可以查询出结果。
6、输入框带有提示词。
ElasticSearch性能更高,功能更加强大,用户体验更好。
三、搜索引擎的底层原理——倒排索引
1、正排索引 可以快速地查找某个文档里包含哪些词项。
2、倒排索引 可以快速查找包含某个词项的文档有哪些。
倒排索引由两部分组成,文档列表和倒排索引区。
新增:向文档列表中新增一条记录,根据索引字段进行分词,把关键词和文档位置信息保存到倒排索引区。
查询:先对用户输入的条件进行分词,再根据分词结果在倒排索引区中找到关键词对应的位置信息列表,最后根据位置信息找到文档列表,将结果返回给用户。
四、docker安装elasticsearch和kibana
1、安装elasticsearch
rm -rf /opt/elasticsearch
mkdir -p /opt/elasticsearch/{config,plugins}
chmod -R 777 /opt/elasticsearch
cat <<EOF> /opt/elasticsearch/config/elasticsearch.yml
xpack.security.enabled: false
xpack.license.self_generated.type: basic
xpack.security.transport.ssl.enabled: false # 不配报错
xpack.security.enrollment.enabled: true
http.host: 0.0.0.0
EOF
docker network create elastic
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
--net elastic \
--restart=always \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms512m -Xmx512m" \
-v /opt/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /opt/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d docker.elastic.co/elasticsearch/elasticsearch:8.8.2
chmod -R 777 /opt/elasticsearch
# 1.设置java客户端访问es的密码
docker exec -it elasticsearch bin/elasticsearch-reset-password -u elastic -i
# 2.设置kibana客户端访问es密码
docker exec -it elasticsearch bin/elasticsearch-reset-password -u kibana_system -i
# -i 表示自定义密码
# 回车之后输入各自密码,密码不要忘记了
2、安装kibana
Kibana是一个开源的分析与可视化平台,专为与Ela