elasticSearch 6搜索介绍和安装

搜索引擎知识介绍和相关框架


什么是搜索:在海量信息中获取我们想要的信息
传统做法:
    1、文档中使用系统的Find查找
    2、mysql中使用like模糊查询
问题:
    1、海量数据中不能及时响应,少量数据可以通过传统的MySql建立索引解决
    2、一些无用词不能进行过滤,没法分词
    3、数据量大的话难以拓展
    4、相同的数据难以进行相似度最高的进行排序
搜索引擎:
    1、存储非结构化的数据
    2、快速检索和响应我们需要的信息,快-准
    3、进行相关性的排序,过滤等
    4、可以去掉停用词(没有特殊含义的词,比如英文的a,is等,中文: 这,的,是等),框架一般支持可以自定义停用词

常用框架:
    1、Lucene
        Apache下面的一个开源项目,高性能的、可扩展的工具库,提供搜索的基本架构;
        如果开发人员需用使用的话,需用自己进行开发,成本比较大,但是性能高
    2、solr
        Solr基于Lucene的全文搜索框架,提供了比Lucene更为丰富的功能,
        同时实现了可配置、可扩展并对查询性能进行了优化
        建立索引时,搜索效率下降,实时索引搜索效率不高
        数据量的增加,Solr的搜索效率会变得更低,适合小的搜索应用,对应java客户端的是solrj
    3、elasticSearch
        基于Lucene的搜索框架, 它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口
        上手容易,拓展节点方便,可用于存储和检索海量数据,接近实时搜索,海量数据量增加,搜索响应性能几乎不受影响;
        分布式搜索框架,自动发现节点,副本机制,保障可用性

 

elasticSearch 6.1.2主要特点和使用场景,新特性讲解

elasticSearch主要特点

  1. 特点:全文检索,结构化检索,数据统计、分析,接近实时处理,分布式搜索(可部署数百台服务器),处理PB级别的数据,搜索纠错,自动完成
  2. 使用场景:日志搜索,数据聚合,数据监控,报表统计分析
  3. 国内外使用者:维基百科,Stack Overflow,GitHub

新特性讲解

    1、6.1.x版本基于Lucene 7.1.0,更快,性能进一步提升,对应的序列化组件,升级到Jackson 2.8

    2、自适应副本选择
    今天在Elasticsearch中,对同一分片的一系列搜索请求将以循环方式转发到主要和每个副本。如果一个节点启动了长时间的垃圾收集,这可能会出现问题 - 搜索请求仍将被转发到缓慢的节点,并且会影响搜索延迟。

    在6.1中,我们添加了一个称为自适应副本选择的实验性功能。每个节点跟踪并比较搜索请求到其他节点的时间,并使用这些信息来调整向特定节点发送请求的频率。在我们的基准测试中,这样可以大大提高搜索吞吐量,降低99%的延迟。
    这个选项在默认情况下是禁用的

    3、推荐使用5.0版本推出的Java REST/HTTP客户端,依赖少,比Transport使用更方便,在基准测试中,性能并不输于Transport客户端,

    在5.0到6.0版本中,每次有对应的API更新, 文档中也说明,推荐使用这种方式进行开发使用,所有可用节点间的负载均衡
    在节点故障和特定响应代码的情况下进行故障转移,失败的连接处罚(失败的节点是否重试取决于失败的连续次数;失败的失败次数越多,客户端在再次尝试同一节点之前等待的时间越长)
    
官方文档:
    1、6.0更新特性:https://www.elastic.co/guide/en/elasticsearch/reference/6.0/release-notes-6.0.0.html#breaking-java-6.0.0
    2、6.1更新特性 :https://www.elastic.co/guide/en/elasticsearch/reference/6.1/release-notes-6.1.0.html

安装:

windows环境下安装JDK8和 ElasticSearch:直接解压,在bin启动

阿里云服务器 快速安装ElasticSearch

linux下使用wget下载jdk8:
进到目录/usr/local/software    
    wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u141-b15/336fa29ff2bb4ef291e347e091f7f4a7/jdk-8u141-linux-x64.tar.gz"
vim /etc/profile
    加入    
    export JAVA_HOME=/usr/local/software/jdk8
    export JAVA_BIN=/usr/local/software/jdk8
    export PATH=$PATH:$JAVA_HOME/bin
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    export JAVA_HOME JAVA_BIN PATH CLASSPATH
使用wget 下载elasticsearch安装包: wget  https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.2.tar.gz
解压:tar -zxvf elasticsearch-6.2.2.tar.gz 

配置es出现相关问题处理:
    1、问题一
        Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c5330000, 986513408, 0) failed; error='Cannot allocate memory' (errno=12)
        #
        # There is insufficient memory for the Java Runtime Environment to continue.
        # Native memory allocation (mmap) failed to map 986513408 bytes for committing reserved memory.
        # An error report file with more information is saved as:
        # /usr/local/software/temp/elasticsearch-6.2.2/hs_err_pid1912.log
       解决:内存不够,购买阿里云的机器可以动态增加内存
    2、问题二
        [root@iZwz95j86y235aroi85ht0Z bin]# ./elasticsearch
        [2018-02-22T20:14:04,870][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [] uncaught exception in thread [main]
        org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
        at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:125) ~[elasticsearch-6.2.2.jar:6.2.2]
        at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:112) ~[elasticsearch-6.2.2.jar:6.2.2]
        at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) ~[elasticsearch-6.2.2.jar:6.2.2]
        at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) ~[elasticsearch-cli-6.2.2.jar:6.2.2]
            解决:用非root用户
                添加用户:useradd -m 用户名  然后设置密码  passwd 用户名
    3、问题三
        ./elasticsearch
        Exception in thread "main" java.nio.file.AccessDeniedException: /usr/local/software/temp/elasticsearch-6.2.2/config/jvm.options
           解决:权限不够 chmod 777 -R 当前es目录
常见配置问题资料:https://www.jianshu.com/p/c5d6ec0f35e0


ElasticSearch目录和配置文件介绍

  1. bin: 启动文件
  2. log: 日志文件,包括运行日志,慢查询日志
  3. config: 核心配置文件
  4. lib: 依赖包
  5. plugins :插件    

ElasticSearch核心配置文件讲解,性能优化配置,JVM参数配置

健康状态检查:http://localhost:9200/_cluster/health
jvm.options  :虚拟机参数配置文件,配置heap内存一样

elasticsearch.yml :  主配置文件

  1. cluster.name  集群名称,同一个网段自动加入
  2. node.name      节点名称
  3. http.port     http端口

注意事项:本地启动多个节点,复制es安装包的时候,需要删除里面data目录里面的资料,不然无法加入集群
 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值