01-全文检索

01-全文检索

需要安装包,请留言,由于文件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 直接启动会报相关的错误

01-全文检索

2.2.2 修改相关配置

  • 权限问题: 需要改成其他非root用户才能启动:(1)创建用户: adduser es (2)切换用户: su es

01-全文检索

  • JVM内存问题

01-全文检索

需要修改/opt/es/elasticsearch-6.3.1/config/jvm.options jvm.options jvm配置文件

01-全文检索

需要用root用户授权: chmod 777 -R elasticsearch-6.3.1

01-全文检索

切换 到es用户上。去修改:

01-全文检索

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CkDTSWnQ-1590768375000)(https://note.youdao.com/yws/public/resource/d74ee22d5a1e1f76187ac11d73ab1c4b/xmlnote/9A6F7AA008894A99B9EF631C64757577/17807)]

建议配置2g~4g,学习测试环境配置256m 就可以了

  • elasticSearch.yml中配置es的host地址(配成本机地址,允许访问) elasticSearch.yml 集群配置文件

01-全文检索

01-全文检索

使用非root账户启动elasticsearch : ./elasticsearch 会报 默认线程数、最大文件数、最大内存数都不够

01-全文检索

  • 修改linux的limits配置文件,设置内存线程和最大文件数 。切换root用户 修改vi /etc/security/limits.conf

01-全文检索

01-全文检索

  • 修改linux的sysctl配置文件,配置系统使用内存

01-全文检索

vi sysctl.conf

01-全文检索

01-全文检索

切换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账号...

(0)
blank

相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号