elasticsearch问题清单
入门链接
原理
倒排索引采用的是b+树实现的
安装配置和启动
- 解压:
tar zxvf elasticsearch-6.3.1.tar.gz - 递归的给linux目录下的所有文件赋予所有权限
chmod 777 -R elasticsearch-6.3.1 - 修改jvm内存参数
vim /opt/es/elasticsearch-6.3.1/config/jvm.options
- 赋予权限
chmod 777 /opt/es/elasticsearch-6.3.1/config/elasticsearch.keystore
logs/gc.log
linux使用curl发送http请求,测试
curl http://www.baidu.com
5 . 配置本机地址,方便被外界访问到 vim /opt/es/elasticsearch-6.3.1/config/elasticsearch.yml
nofile 文件最大数目
noproc 进程最大数目
soft 当前系统生效的设置值
hard 系统中所能设定的最大值
- 修改linux配置(配合es启动需求) vim /etc/security/limits.conf (linux的#也是有作用的)
* hard nofile 65536
* soft nofile 131072
* hard nproc 4096
* soft nproc 2048
刷新一下
7. 配置系统内存 vim /etc/sysctl.conf
vm.max_map_count=655360
fs.file-max=655360
sysctl -p (配置生效)
- 总结
elasticSearch.yml es的启动host地址
jvm.options配置es的虚拟机内存
limits.conf配置linux的线程内存和文件
sysctl.conf配置系统允许的软件运行内存
启动运行es
启动命令
cd /opt/es/elasticsearch-6.3.1/bin/
./elasticsearch
如果报root权限不能启动,则新建一个普通linux用户,然后切换到普通用户再执行命令启动即可
如果启动成功,在浏览器输入:http://192.168.0.200:9200/ 【192.168.0.200是虚拟机的访问地址】,看到如下字符串则说明启动成功:
{
"name" : "KgD-wLl",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "pMl_T6SdSSq55G4nGtuP6w",
"version" : {
"number" : "6.3.1",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "eb782d0",
"build_date" : "2018-06-29T21:59:26.107521Z",
"build_snapshot" : false,
"lucene_version" : "7.3.1",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}
一个index相当于库,type–是表,document—行数据,field相当于字段
node是es(elasearch)的实例,
nohup 控制台将(忽略的)日志信息输出到nohup.out
mysql是tcp协议
es是http协议
安装并启动kibana数据可视化工具
Kibana是一个开源的分析和可视化平台,设计用于和Elasticsearch一起工作。
你用Kibana来搜索,查看,并和存储在Elasticsearch索引中的数据进行交互。
你可以轻松地执行高级数据分析,并且以各种图标、表格和地图的形式可视化数据。
Kibana使得理解大量数据变得很容易。它简单的、基于浏览器的界面使你能够快速创建和共享动态仪表板,实时显示Elasticsearch查询的变化。【就是一个数据可视化工具】
编辑kibana的配置文件 ,更改其es的连接地址
vim /opt/es/kibana-6.3.1-linux-x86_64/config/kibana.yml
cd /opt/es/kibana-6.3.1-linux-x86_64/bin
nohup ./kibana &
然后ctrl+c退出
执行 ps -ef |grep node
浏览器输入:http://192.168.0.200:5601/status 查看是否启动成功
http://192.168.0.200:5601/app/kibana
安装IK中文分词器
GET _analyze
{
“analyzer”: “ik_smart”,
“text”: [“我是中国人”]
}
红海
elasticsearch
es有哪些索引:
rdbms关系型数据库管理系统
es中的数据存储方式
es增删改查命令
put/delete/update/get
GET _cat/indices
#增
put lmj
##既可以增,又可以覆盖
PUT /movie_index/movie/1
{ "id":1,
"name":"红海拯救",
"doubanScore":8.5,
"actorList":[
{"id":1,"name":"zhang yi"},
{"id":2,"name":"hai qing"},
{"id":3,"name":"zhang han yu"}
]
}
PUT /movie_index/movie/2
{
"id":2,
"name":"湄公河",
"doubanScore":8.0,
"actorList":[
{"id":3,"name":"zhang han yu"}
]
}
PUT /movie_index/movie/3
{
"id":3,
"name":"红海事件",
"doubanScore":5.0,
"actorList":[
{"id":4,"name":"zhang chen"}
]
}
# 查
GET movie_index/movie/_search
{
"query":{
"match":{"name":"red"}
}
}
相关性算分
搜索出来的结果和关键词的相关性的分数的计算公式
集群配置
ElasticSearch5.6.1配置文件elasticsearch.yml详解
vim /opt/es/elasticsearch-6.3.1/config/elasticsearch.yml
cluster.name: aubin-cluster
node.name: es
node.master: true
node.data: true
path.data: /opt/data
path.logs: /opt/logs
network.host: 192.168.0.200
http.port: 9200
transport.tcp.port: 9300 # 对外提供的端口
discovery.zen.ping.unicast.hosts: ["192.168.0.201"]
discovery.zen.minimum_master_nodes: 2
鸡蛋不能放在同一篮子里。mysql的主从复值,abcd篮子的鸡蛋是完全一样【b完全复值一次a】
mysql是一筐鸡蛋完全复值一份装在另一框里面
es是一筐鸡蛋,分别放在几个篮子里装。然后几个篮子里的鸡蛋在各自篮子里再分片(即自我复值一份),handoop也是一样的,这样可以提高集群的容错率(防止硬件故障导致的数据丢失)。固有主分片和副分片的差别
主分片的数量只能在索引定义时确定
主分片都是负责指导分发任务
平时是按照热度来进行搜索排序
long/integer转string :
1+""
这样就可以了