文章目录
需要安装包,请留言,由于文件400多M,上传不了。
全文搜索
1.介绍
elasticsearch 6 (和elasticsearch 5 的区别在于,root用户权限、一个库只能建立一个表)
1.1 文本搜索引擎:
- 优点:搜索快;
- 缺点:占用空间。【典型的空间换时间的一种算法】
同类产品:Solr、ElasticSearch、Hermes(腾讯)(实时检索分析)
solr 、elasticSearch 底层依赖Lucene; elasticsearch 默认就是以集群方式工作的。solr需要依赖zk1.
1.2 elasticSearch(搜索引擎)的算法
倒排索引(在内容上建立索引,用内容匹配索引);
btree mysql数据库的索引方式。
b+tree 多路平衡书的晋级(elasticsearch)
内存结构:https://www.cs.usfca.edu/~galles/visualization/Algorithms.html B+Tree
2.elasticsearch 单机安装
2.1 Centos7 +jdk 安装
- 查看当前Linux系统是否已经安装java : 输入 rpm -qa | grep java
- 卸载两个openJDK: 输入rpm -e –nodeps 要卸载的软件
- 上传jdk到linux
- 解压jdk到/usr/local下 tar –xvf jdk-7u71-linux-i586.tar.gz –C /usr/local
- 配置jdk环境变量,打开/etc/profile配置文件,将下面配置拷贝进去
#set java environment
JAVA_HOME=/usr/local/jdk1.8.0_152
CLASSPATH=.:$JAVA_HOME/lib.tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
- 重新加载/etc/profile配置文件 source /etc/profile
2.2 安装elasticsearch
2.2.1 创建目录、上传、解压
- mkdir -p /opt/es //把安装包上传到 /opt/es目录下
- tar – zxvf elasticsearch-6.3.1.tar.gz
- 启动脚本 :
./elasticsearch
直接启动会报相关的错误
2.2.2 修改相关配置
- 权限问题: 需要改成其他非root用户才能启动:(1)创建用户:
adduser es
(2)切换用户:su es
- JVM内存问题
需要修改/opt/es/elasticsearch-6.3.1/config/jvm.options jvm.options jvm配置文件
需要用root用户授权: chmod 777 -R elasticsearch-6.3.1
切换 到es
用户上。去修改:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CkDTSWnQ-1590768375000)(https://note.youdao.com/yws/public/resource/d74ee22d5a1e1f76187ac11d73ab1c4b/xmlnote/9A6F7AA008894A99B9EF631C64757577/17807)]
建议配置2g~4g,学习测试环境配置256m 就可以了
- elasticSearch.yml中配置es的host地址(配成本机地址,允许访问) elasticSearch.yml 集群配置文件
使用非root账户启动elasticsearch : ./elasticsearch
会报 默认线程数、最大文件数、最大内存数都不够
- 修改linux的limits配置文件,设置内存线程和最大文件数 。切换
root
用户 修改vi /etc/security/limits.conf
- 修改linux的sysctl配置文件,配置系统使用内存
vi sysctl.conf
切换es
用户启动elasticsearch
elasticSearch.yml es的启动host地址
jvm.options配置es的虚拟机内存
limits.conf配置linux的线程内存和文件
sysctl.conf配置系统允许的软件运行内存
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
# 开启80端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
命令含义
--zone #作用域
--add-port=80/tcp #添加端口,格式为:端口/通讯协议
--permanent #永久生效,没有此参数重启后失效
CentOS 7.0默认使用的是firewall作为防火墙,使用iptables必须重新设置一下
直接关闭防火墙
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
设置 iptables service
yum -y install iptables-services
如果要修改防火墙配置,如增加防火墙端口3306
vi /etc/sysconfig/iptables
增加规则
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
保存退出后
systemctl restart iptables.service #重启防火墙使配置生效
systemctl enable iptables.service #设置防火墙开机启动
3.elasticsearch交互
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/100749.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...