zoukankan      html  css  js  c++  java
  • ElasticSearch从不懂到会用1—安装篇

           连续加班近一个多月,项目终于告一段落了,也腾出时间写一写项目中用到的东西。在这个项目中,我负责的主要是多种业务场景下的数据查询和搜索,其中搜索用到了ElasticSearch搜索引擎。下面主要围绕ElasticSearch的安装、项目中的使用方式以及踩过的一些坑进行总结。(本博客主要针对ElasticSearch的使用,对一些原理不做过多解释)

    1.ElasticSearch是什么

      ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。说的通俗一点,就是是一个比较好、用起来也比较方便的搜索服务器。一般项目中如果用到关键字搜索,就可以将数据存入到ElasticSearch,搜索效率比较高。(下面ElasticSearch简称ES)

      在关系型数据库中,一般有数据库、表、行、和列的概念。在ES中有:  

        索引index(类似于数据库)

        类型type(类似于表的概念,在ES7之后,就没有了type)、

        document(类似于一行记录)

        feild字段,每个document的内容都是一些字段及对应的值。(字段相当于数据库的列)

      对于存入ES的数据,ES会进行分词(字段是否分词,采用什么分词器分词在添加映射的时候——也就是创建type结构的时候指定)。

    2.ElasticSearch安装

       首先说明:

        在安装ES的时候,首先强调一点,ES启动的时候不能使用root用户启动,如果拿root用户启动失败了,则删除logs目录,在重新切换到普通用户启动即可。下面会强调这个问题。

          此外,ES是Java开发的时候,所以安装ES之前,需要先安装JDK。

      (1)下载安装包

      在官网下载ES的安装包:https://www.elastic.co/downloads/elasticsearch

      将安装包放在linux下的一个目录下进行解压,我选择的是opt目录:

      tar -zxvf elasticsearch-7.0.0-linux-x86_64.tar.gz
    
      cd elasticsearch-7.0.0
    
      cd config
    

      (2)编辑config目录下的elasticsearch.yml

      修改以下几个选项:

      cluster.name: study-es

      node.name:  node01

      network.host: 192.168.1.8

      http.port: 9200

      discovery.zen.ping.timeout:120s #设置集群中自动发现其他节点时ping连接的超时时间

      discovery.zen.ping.multicast.enabled:false #设置是否打开多播发现节点

      discovery.zen.ping.unicast.hosts:["192.168.1.8:9200","192.168.1.9:9200","192.168.1.10:9200"] 

      (3)将配置分发到其他节点.

      scp -r elasticsearch-7.0.0/ root@192.168.1.9:`pwd`

      scp -r elasticsearch-7.0.0/ root@192.168.1.10:`pwd`

      分发之后,去对应的节点修改个别配置

      (4)普通用户启动es

      如果是root用户对ES进行的安装和配置,那么切换到普通用户启动ES一般没有权限,所以需要将ES相关的文件给普通用户授权。

    • ll命令查看ES,结果如下:

      

        它和它下面的文件夹和目录都属于root用户和root用户组。

    • 在root登录的情况下改变es文件夹和它下面的文件的属主和属组,以便普通用户有执行权限

        我的linux上有test用户,test用户也属于test用户组。

        chown -R test:test elasticsearch-7.0.0/

      ll命令查看:

           

    su test  //切换到test用户
    cd bin .
    /elasticsearch

      在浏览器查看,输入地址192.168.1.8:9200

    3.中文分词插件的安装

      下载分词zip包,如果下载源码包还需要自己安装,下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases

      (1)进入elasticsearch安装目录下的plugins目录,创建ik目录

    cd elasticsearch-7.0.0/plugins/
    mkdir ik
    

      (2)解压分词包,并拷贝到ik目录下

    unzip elasticsearch-analysis-ik-7.0.0.zip  #解压出来的目录叫elasticsearch
    cd elasticsearch #进入刚刚解压出来的elasticsearch目录
    cp -r ./* /opt/elasticsearch-7.0.0/plugins/ik/  #拷贝当前目录所有子目录和文件到elasticsearch的ik目录下

      (3)重新启动ES

      分词器安装可参考链接:https://www.jianshu.com/p/1c4d489f18fe

    ES安装先说到这。后面会对 ElasticSearch的使用(包括restful api 、Java API、ElasticSearch-Sql)以及踩过的一些坑进行总结。这些坑包括下面几个问题,暂时只想起来这么多:

      搜索时的大小写问题

      wildcard模糊查询:*和?

      sql语句的and or 等的优先级问题 

      post请求中文查询乱码问题

      分页查询的时候,如果页数特别大,查询效率会很低的问题

  • 相关阅读:
    查询中常用的扩展方法
    加载关联表的数据 显式加载
    加载关联表的数据 延迟加载
    加载关联表的数据 贪婪加载
    操作内存中的数据
    DBContext基础查询
    EF简单增删改查
    1- MySQL数据库基础快速入门
    1-3 Postman 注册账号与登录
    1-2 postman工具简介
  • 原文地址:https://www.cnblogs.com/zhangyongJava/p/10942332.html
Copyright © 2011-2022 走看看