ElasticSearch入门学习

本文介绍Elasticsearch这一搜索引擎的应用场景及工作原理,包括其在淘宝、百度等平台的应用,并通过对比MySQL的正向索引解释了Elasticsearch的倒排索引机制。此外,还提供了详细的Elasticsearch安装步骤。

elasticsearch是一种搜索引擎,淘宝、百度、pdd 都能有他的身影。

elasticsearch结合kibana、Logstash、Beats构成elastic stack(ELK)可进行日志数据分析、实时监控。

官网点这里!

正向索引

MySQL数据采用正向索引 例如下表 student_table

select * from student_table where name like '%三%'

该搜索语句会进行 全表扫描,当数据量十分庞大时,性能较差。

idnameage
0张三10
1李四15
2张三三25

倒排索引

elasticsearch采用倒排索引:

  • 文档 document) : 每条数据就是一个文档

  • 词条(term) : 文档按照语义分成的词语

idnameage
0张三10
1李四15
2王五25
3张三爸爸50
4李四爸爸44

===》

词条(tern)文档(id)
张三0,3
李四1,4
爸爸3,4

语义分析(词条分类)这里我们不做考虑,有兴趣的同学自行研究一下叭~

那怎么查询呢?

例如 我们搜索 张三爸爸

  1. 分词得到 “张三” “爸爸”

  2. 得到词条所在文档id 张三: 0,3 爸爸:3,4

  3. 根据id查询文档 得到id为 0,3,4 的文档 最终取交集 将最终结果存入结果集

基础概念

文档

elasticsearch时面向文档存储的,文档数据会序列化为json格式后存储在elasticsearch中。

{
    “id”:1,
    "name": "大天才",
    "age": 18
}

索引

  • 索引:相同类型的文档集合

  • 索引中文档的字段约束信息,类似于表结构约束。

职能

数据库(mysql):负责事务性操作

elasticsearch负责海量数据的搜索、分析和计算

安装elasticsearch

1.部署单点es

1.1创建网络

docker network create es-net

注:我这里用的是虚拟机替代的服务器

问题记录

大家注意下关闭防火墙和开启docker的顺序 ,我这里错误原因是先开启的docker 再 关闭防火墙 会报错

Error response from daemon: Failed to Setup IP tables: Unable to enable SKIP DNAT rule: (iptables failed: iptables --wait -t nat -I DOCKER -i br-a79b58c11c3f -j RETURN: iptables: No chain/target/match by that name. (exit status 1))

解决方案也很简单 再次启动docker

systemctl restart docker

1.2加载镜像

我喜欢去docker hub上直接pull新的

输入命令

1.3运行

docker run -d \
    --name es \
    -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
    -e "discovery.type=single-node" \
    -v es-data:/usr/share/elasticsearch/data \
    -v es-plugins:/usr/share/elasticsearch/plugins \
    --privileged \
    --network es-net \
    -p 9200:9200 \  
    -p 9300:9300 \
elasticsearch:latest

注:9200端口是外界访问的端口 9300是内部的

最后写tag的时候记得用 docker images 查询一下自己的镜像版本

然后我们去 Windows里面的浏览器浅看一下

安装好啦!

这里我们补充一下查询虚拟机ip的方法(我配置的动态ip,so他会变。大家如果也是动态的话就访问之前查询一下就行,记得进入管理员模式 su 输入密码即可)

ifconfig

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值