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 直接啓動會報相關的錯誤

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交互

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章