@小仙女的胖鱼(crab)


标签:ElasticSearch


一、前情提要

项目前期通过AOP切面将日志存储到关系型数据库Mysql中,由于项目需要每种操作都定义日志模板,记录不同的参数,查询时通过维度、用户类型、菜单等来过滤,设计了四张表关联(操作表,日志主体表,操作模板表,参数值表),且日志主体记录的参数和异常采用了CLOB字段并进行了转字符串截取的操作,导致数据量刚上升到两万的时候,日志主体表单表查询已经是龟速(八秒),联表查询更是长达三十多秒,这对于客户是不能忍受的。
考虑到联表查询优化sql的可能性不大(模板表是小表,日志表是大表,查询参数分布在模板表和日志主体表中,且含有大字段,页面没有采用懒加载,需要单行显示全部内容),因此立马投入轻巧简单(快速入门)的ElasticSearch的怀抱。
项目使用的SpringBoot的版本是1.5.7,看了网上的版本需要对应之后,我选择了旧版本中的最新版ElasticSearch2.4.6,并且使用封装好的JPA方法(引入spring-boot-starter-data-elasticsearch 2.2.5 jar包),这样选择虽然调用方便,拿来即用,但是由于项目兼容性,也承担了部分性能、安全、磁盘空间降低的问题。


二、ES安装

1. 准备Java环境

需要Java环境支持,这里再记录一下Java的安装配置过程:

  • 下载安装包
  • 上传并解压到/usr/local/java
  • 设置环境变量vi /etc/profile
    • export JAVA_HOME=/usr/local/java/jdk1.8xxx
    • export PATH=$JAVA_HOME/bin:$PATH
    • export CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  • 更新配置source /etc/profile
  • 查看版本验证java -version

    2. 安装ElasticSearch

  • 下载elasticsearch-2.4.6.tar.gz
  • 解压到某个文件夹tar -zxvf elasticsearch-2.4.6.tar.gz
  • 开放外网访问,修改配置文件elasticsearch.ymlnetwork.host=0.0.0.0
  • 启动服务./elasticsearch -d
  • 查看进程ps -ef |grep elasticseatch
  • 验证curl localhost:9200
  • 插件安装
    • 直接安装./bin/plugininstall mobz/elasticsearch-head
    • ZIP安装
      • 下载elasticsearch-head-master.zip
      • 解压到plugins\head
    • 访问localhost:9200/_plugin/head/

三、ES简单使用