ElasticSearch7.6.x总结-(前篇)

ElasticSearch(简称ES)的由来

基于Lucene(java)开发升级而来。ElasticSearch是基于Lucene做了一些封装和增强,是一个开源的高扩展的分布式全文搜索引擎,它可以近乎实时的存储、检索数据,它是通过简单的RESTful API来隐藏Lucene的复杂性,让全文搜索更加简单。

谁在使用:

维基百科,Stack Overflow,GitHub等等

ELK技术=ES+logStash(采集日志)+Kibana 用于-日志数据分析

ES、Solr、Lucene的关联与区别:

  • Solr也是基于Lucene开发而来,
  • ES可以使用RestFul,性能方面的提升。
  • es开箱即用,solr安装复杂;
  • solr利用Zookeeper进行分布式管理,ES用的是自身带有分布式的功能;
  • solr支持更多的数据格式:json,xml,csv,es只支持json,但是已经足够我们使用;

注意:JDK1.8是最低要求!

正文开始:

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

7.6.2版本:https://www.elastic.co/downloads/past-releases/elasticsearch-7-6-2

ELK三剑客,都是解压即用.(环境:需要node)

Windows安装:下载安装包后,解压新建目录

目录:

  • bin-启动文件
  • config-配置文件
    • log4j2 日志配置文件
    • jvm.options jvm配置
    • elasticsearch.yml es的配置文件,默认9200端口

启动:

bin目录直接启动:elasticsearch.bat文件

访问:9200端口:页面显示

{
  "name" : "LAPTOP-NML71DV4",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "wXf0oB0CS22VXSy_aDP2cg",
  "version" : {
    "number" : "7.6.2",
    "build_flavor" : "default",
    "build_type" : "zip",
    "build_hash" : "ef48eb35cf30adf4db14086e8aabd07ef6fb113f",
    "build_date" : "2020-03-26T06:34:37.794943Z",
    "build_snapshot" : false,
    "lucene_version" : "8.4.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}


安装可视化界面:es head插件(需要node环境)

下载地址:https://github.com/mobz/elasticsearch-head

解压目录:安装D:\Java\elasticsearch\elasticsearch-head-master

进入目录后:cnpm install

运行:npm run start (注意:由于master是9100端口,而es为9200端口,会有跨域问题)

解决跨域:修改elasticsearch.yml,添加如下两行
http.cors.enabled: true
http.cors.allow-origin: "*"

访问:localhost:9100

-索引就是数据库,当成数据库页面来看
(注意:此时cmd可能会锁定,导致手动添加索引卡住,点一下回车键即可)
-就当作数据库navicat来看,关注-概览,索引,数据浏览即可,后面的查询我们用kibana去做

Kibana(需要版本对应es)

Kibana是一个针对es的开源分析及可视化平台,用来搜索,查看交互存储再es索引中的数据,可以通过各种图标进行高级数据分析及展示.

解压后:启动测试:bin-kibana.bat

默认端口:http://localhost:5601

汉化:打开config/kibana.yml 修改#i18n.locale: "en"为i18n.locale: "zh-CN"


ES核心概念

ES是一个面向文档

MySQL ES
数据库 索引
types(将被弃用)
documents文档
字段 fields

物理设计:ES默认在后台把每个索引划分成多个片,每分分片可以在集群中的不同服务器间迁移,一个人就是一个集群,默认集群名字是elasticsearch.

文档 --一条条数据

索引 --数据库

score-权重-即命中数


IK分词器

何为分词? 分词就是把一段种文或者别的划分成一个个关键字,我们搜索的时候就会把自己的信息进行分词,会把数据库中或者索引库中的数据进行分词,然后匹配,中文是把每个字堪称一个词.中文建议使用IK分词器.

IK提供了2个分词器:ik_smartik_max_word,ik_smart为最少切分,ik_max_word为最细粒度划分.

下载IK分词器(注意与es同版本):https://github.com/medcl/elasticsearch-analysis-ik

下载完后解压放入es目录下的plugins目录下

重启es

使用Kibana分词器测试:打开页面->工具页面

分别测试2个分词器
GET _analyze
{
  "analyzer":"ik_smart",
  "text": "超级喜欢晏子哒哒"
}

GET _analyze
{
  "analyzer":"ik_max_word",
  "text": "超级喜欢晏子哒哒"
}

比如'超级喜欢晏子哒哒',这时候晏子哒哒会被分成4个词,而不是我想要的,此时需要自己配置词,加入到分词器的字典中!

IK分词器增加自己配置: config->IKAnalyzer.cfg.xml




    IK Analyzer 扩展配置
    
    test.dic
     
    
    
    
    
    


新建test.dic:

晏子哒哒

保存完重启es测试.

未完待续...

你可能感兴趣的:(ElasticSearch7.6.x总结-(前篇))