搜索引擎ElasticSearch

Elasticsearch简介

1.1、Elasticsearch

1.1.1 Elasticsearch是一个基于Apache Lucene™的开源搜索引擎。无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进、== 性能最好的==、功能最全的搜索引擎库。

1.1.2 特点

  • 分布式的实时文件存储,每个字段都被索引并可被搜索
  • 分布式的实时分析搜索引擎–做不规则查询
  • 可以扩展到上百台服务器,处理PB级结构化或非结构化数据

1.1.3 Elasticsearch也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。

1.1.4 ES能做什么?
全文检索(全部字段)、模糊查询(搜索)、数据分析(提供分析语法,例如聚合)

1.1.5 ElasticSearch5和ElasticSearch6区别
ElasticSearch6(和ElasticSearch5的区别在于,root用户权限,一个库能否建立多张表)

1.1.6 搜索引擎(以百度和谷歌为例)的工作原理

  1. 爬虫
  2. 分析
  3. 查询

1.1.7elasticSearch(搜索引擎)B+tree算法
倒排索引(内容上建立索引,用内容匹配索引)
搜索引擎ElasticSearch

1.2、Elasticsearch安装

1.2.1安装环境:centos7+jdk8
1.2.2配置文件/config elasticsearch.yml(集群文件)与jvm.options(Jvm配置文件)
搜索引擎ElasticSearch
1.2.3上传解并解压到centos /opt/es目录下
4. 在opt下新建目录:mkdir -p /opt/es
5. 上传并解压 tar -zxvf elasticsearch-6.3.1.tar.gz、elasticsearch-analysis-ik6.rar、kibana-6.3.1-linux-x86_64.tar.gz
6. chmod 777 -R(循环授权所有目录) elasticsearch-6.3.1
搜索引擎ElasticSearch
1.2.4配置
Es使用最大线程数、最大内存数、访问的最大文件数

  1. 启动脚本elasticsearch
    搜索引擎ElasticSearch
  2. 创建用户并切换
    • 创建用户:adduser es
    • 切换用户:su es
  3. 执行脚本./elasticsearch
  4. 出现问题
    • Es使用Jvm内存大小不够用
      搜索引擎ElasticSearch
  5. 修改配置文件
    • vim elasticsearch-6.3.1/config/jvm.options 配置jvm的内存大小
      搜索引擎ElasticSearch
  • 在elasticSearch.yml中配置host地址(本机地址),外网允许访问
    搜索引擎ElasticSearch

    • 启动问题:Es使用最大线程数、最大内存数、访问的最大文件数
      搜索引擎ElasticSearch

    • 需要修改两处配置文件

      1. 修改Linux的limits文件,设置内存线程和文件
        搜索引擎ElasticSearch
      2. 修改Linux的sysctl文件,配置系统使用内存
        搜索引擎ElasticSearch
    • Es权限问题

      1. 首先root用户解压: tar -zxvf elasticsearch-6.3.1.tar.gz
      2. chmod 777 -R(循环授权所有目录) elasticsearch-6.3.1

    es文件四处需要修改
    搜索引擎ElasticSearch