• ElasticSearch(一)【简介】


    一、ES简介


    1.1 概述

    什么是ElasticSearch

    ElasticSearch简称ES,是基于Apache Lucene构建的开源搜索引擎,是当前最流行的企业级搜索引擎。Lucene本身就可以被认为迄今为止性能最好的一款开源所搜引擎工具包,但是Lucene的API相对复杂,需要深厚的搜索理论。很难集成到实际应用当中去。ES采用Java语言编写,提供了简单易用的Restful API,开发者可以使用其简单的Restful API,开发相关的搜索功能,从而避免Lucene的复杂性

    ElasticSearch诞生

    多年前,一个叫做Shay Banon的刚结婚不久的失业开发者,由于妻子要去伦敦学习厨师,他便跟着也去了。在他找工作的过程中,为了给妻子构建一个食谱的搜索引擎,他开始构建一个早期版本的Lucene

    直接基于Lucene工作会比较困难,所以Shay开始抽象Lucene代码以便Java程序员可以在应用中添加搜索功能。他发布了他的第一个开源项目,叫做"Compass"

    后来Shay找到一份工作,这份工作处在高性能和内存数据网格的分布式环境中,因此高性能的、实时的、分布式的搜索引擎也是理所当然需要的。然后他决定重写Compass库使其成为一个独立的服务叫做Elasticsearch

    第一个公开版本出现在2010年2月,在那之后Elasticsearch已经成为Github上最受欢迎的项目之一,代码贡献者超过300人。一家主营Elasticsearch的公司就此成立,他们一边提供商业支持一边开发新功能,不过Elasticsearch将永远开源且对所有人可用

    全文检索

    全文检索是计算机程序通过扫描文章中的每一个词、对每一个词建立一个索引,指明该词在文章中出现的次数位置。当用户查询时,根据建立的索引查找,类似于通过字典的检索字表查字的过程

    全文索引(Full-Text Retrieval)以文本作为检索对象,找出含有指定词汇的文本。全面、准确和快速是衡量全文检索系统的关键指标

    • 只处理文本、不处理语义
    • 搜索时英文不区分大小写
    • 结果列表有相关度排序

    1.2 基础安装

    环境准备

    • centos7.x+
    • jdk11+(可以不需要配置jdk,往下看即可)

    官方下载地址https://www.elastic.co/cn/downloads/elasticsearch

    查看以前的版本

    在这里插入图片描述

    选择对应的版本号和引擎,点击Download

    在这里插入图片描述

    安装Linux版本的引擎包

    在这里插入图片描述

    下载好后,使用 xftp 将压缩包上传到Linux目录下

    在这里插入图片描述

    将压缩包进行解压

    tar -zxvf elasticsearch-7.14.0-linux-x86_64.tar.gz 
    
    • 1

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    查看elasticsearch自带的java版本

    在这里插入图片描述

    解决自带jdk版本过低问题

    在这里插入图片描述

    - 这个错误是系统jdk版本与es要求jdk版本不一致,es默认需要jdk11以上的版本,当前系统使用jdk8,需要从新安装jdk11才行
    - 解决方案
     方案一: 安装jdk11+,并配置环境变量
     方案二: ES包中目录就是es需要的jdk,只需要将这个目录配置到ES_JAVA_HOME环境变量即可
    
    • 1
    • 2
    • 3
    • 4

    这里我们使用方案二解决

    # 配置环境变量,在/etc/profile目录文件下,文件底部添加如下
    vim /etc/profile
    
    # elasticsearch自带jdk的路径
    ES_JAVA_HOME=/usr/local/elasticsearch/elasticsearch-7.14.0/jdk
    export ES_JAVA_HOME
    # 重新加载环境
    source /etc/profile
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    注意es默认是不允许root用户去启动elasticsearch,所以需要给普通用户添加权限

    在这里插入图片描述

    运行成功的标志

    在这里插入图片描述

    1.3 访问测试

    本地访问

    使用外部端口访问,默认是在窗口运行,并且端口号是9200

    # 访问端口
    curl http://localhost:9200
    # 添加参数-d后台启动
    ./elasticsearch -d
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    远程访问

    # 默认ES无法使用主机ip进行远程连接,需要开启远程连接权限
    - 修改ES安装包中config/elasticsearch.yml配置文件
    vim elasticsearch.yml
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    修改完之后,重启elasticsearch报错

    • 最大虚拟内存太低
    • 默认是生产模式启动(集群的方式启动)

    在这里插入图片描述

    解决问题一(用户的软硬限制)

    ### 找到文件 /etc/security/limits.conf,在文件的最后追加如下配置:
    # 软硬问题(修改这里即可)
    [totoro为用户名称,作用域]
    totoro soft nofile 65536
    totoro hard nofile 65536
    
    # 最大线程数问题(无需修改,有报错添加即可)
    totoro soft nofile 65535
    totoro hard nofile 65537
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    vim /etc/security/limits.conf
    
    • 1

    在这里插入图片描述

    解决问题二(内存太低)

    ### 以root身份进行修改
    # 在/etc/sysctl.conf目录文件下,修改以下参数
    vm.max_map_count=262144	# centos7 系统
    # 保存后,执行以下命令即可生效
    sysctl -p
    
    • 1
    • 2
    • 3
    • 4
    • 5

    解决问题三(集群修改为单机)

    ### 编辑elasticsearch.yml文件
    cluster.initial_master_nodes: ["node-1"]
    # 执行以下命令即可生效
    sysctl -p
    
    • 1
    • 2
    • 3
    • 4
    vim elasticsearch.yml
    # 通过:set nu 显示行数,位置定位在74行,如下图
    
    • 1
    • 2

    在这里插入图片描述

    重新启动elasticsearch,并开启防火墙端口号,通过外部访问端口

    firewall-cmd --zone=public --add-port=9200/tcp --permanent 
    systemctl restart firewalld.service		# 重启防火墙命令
    
    • 1
    • 2

    在这里插入图片描述

    在这里插入图片描述

    1.4 Docker安装

    docker安装教程

    # 运行docker命令
    systemct start docker
    
    ### 1.拉取elasticsearch镜像
    docker pull elasticsearch:7.14.0
    
    ### 2.运行ES
    docker run -d -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.14.0
    -d	后台运行
    -p 	本地端口与docker容器中的端口映射
    -e	指定单机模式环境运行
    
    ### 3.访问ES
    http://192.168.159.100:9200
    
    ### 根据容器id查看日志输出
    docker logs -f 1343ec1236e7
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    在这里插入图片描述

    在这里插入图片描述

    主机访问测试

    http://ip:9200/

    在这里插入图片描述

    下一篇文章ElasticSearch - Kibana

  • 相关阅读:
    初识RNN1
    计算机网络 --- WebSocket协议 和 Signalr
    docker的conda环境中安装mindspore(CPU版本?)
    简单的kafka&redis学习之kafka
    【Gitea】 Post “http://localhost:3000/api/internal/hook/pre-receive/aa/bbb“ 异常
    计算机网络知识点(五)
    UE4 给模型设置碰撞避坑
    win下载安装不同java版本教程
    生成对抗网络GAN基本原理
    【计算机辅助蛋白质结构分析、分子对接、片段药物设计技术与应用】
  • 原文地址:https://blog.csdn.net/Wei_Naijia/article/details/126922856