Elasticearch 安装 基础介绍 (一)

x33g5p2x  于2022-06-27 转载在 其他  
字(5.6k)|赞(0)|评价(0)|浏览(526)

1 介绍

Elasticsearch是一个实时分布式搜索和分析引擎。它让你以前所未有的速度处理大数据成为可能。
它用于全文搜索、结构或搜索、分析以及将这三者混合使用

搜索纠错、实时反馈

2 ELK安装

环境:

  • JDK1.8 最低要求
  • Java开发、ElasticSearch的版本和我们之后对应的Java的核心jar包。

官网:https://www.elastic.co/cn

下载:https://www.elastic.co/cn/downloads/past-releases/elasticsearch-7-6-2

我们在windows下演示

ELK三剑客,解压即用:

  • Nodejs
  • python2

2.1 Elasticearch安装

2.1.1 windows 安装

  1. bin 启动文件
  2. config 配置文件
  3. log4j2 日志配置文件
  4. jvm.options java 虚拟机相关配置
  5. elasticsearch.yml elasticsearch配置文件 默认9200端口!有跨域问题
  6. lib 相关jar
  7. logs 日志
  8. modules 功能模块
  9. plugubs 插件 ik分词

启动:
bin/elasticsearch.bat

访问测试
http://127.0.0.1:9200/

  1. {
  2. "name" : "USERMIC-AQENDNF",
  3. "cluster_name" : "elasticsearch",
  4. "cluster_uuid" : "SgT0Xh5-QvCHBwjnrlMhOw",
  5. "version" : {
  6. "number" : "7.6.2",
  7. "build_flavor" : "default",
  8. "build_type" : "zip",
  9. "build_hash" : "ef48eb35cf30adf4db14086e8aabd07ef6fb113f",
  10. "build_date" : "2020-03-26T06:34:37.794943Z",
  11. "build_snapshot" : false,
  12. "lucene_version" : "8.4.0",
  13. "minimum_wire_compatibility_version" : "6.8.0",
  14. "minimum_index_compatibility_version" : "6.0.0-beta1"
  15. },
  16. "tagline" : "You Know, for Search"
  17. }
2.1.2 linxu安装
  1. wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.15.2-linux-x86_64.tar.gz

2.2 可视化界面 elasticsearch-head

https://github.com/mobz/elasticsearch-head

1、配置elasticsearch

解决跨域问题:elasticsearch-7.6.2\config\elasticsearch.yml

文件尾部添加如下代码

  1. http.cors.enabled: true
  2. http.cors.allow-origin: "*"

2、启动elasticsearch-head

  1. docker build -t elk-head .

2.3 安装 Kibana

官网:https://www.elastic.co/cn/kibana/

Kibana版本要和ES一致

1、启动

http://localhost:5601

2、汉化
国际化文件x-pack\plugins\translations\translations\zh-CN.json
修改配置:config/``kibana.yml
116行

  1. i18n.locale: "zh-CN"

3 docker部署elk

docker命令:https://vitcloud.blog.csdn.net/article/details/122652560
下载:
https://github.com/deviantony/docker-elk/tree/release-7.x

http://localhost:9200/
http://localhost:5601/

3.1 基本配置

1. 启动

  1. docker-compose up

默认用户名、密码
user: elastic
password: changeme

2 为内置用户初始化密码

  1. docker-compose exec -T elasticsearch bin/elasticsearch-setup-passwords auto --batch
  1. Changed password for user apm_system
  2. PASSWORD apm_system = 40iHqszWXZuBHJUAO2rO
  3. Changed password for user kibana_system
  4. PASSWORD kibana_system = Mld3fRmxEmJy5mLwhbc2
  5. Changed password for user kibana
  6. PASSWORD kibana = Mld3fRmxEmJy5mLwhbc2
  7. Changed password for user logstash_system
  8. PASSWORD logstash_system = FEwag4dLfVJS6cVVZemn
  9. Changed password for user beats_system
  10. PASSWORD beats_system = S6L29ErIA3jigEQLTvnW
  11. Changed password for user remote_monitoring_user
  12. PASSWORD remote_monitoring_user = 7zWztQAFCoWytAA9VCDm
  13. Changed password for user elastic
  14. PASSWORD elastic = EtWvHc8lGh05YS7vS1mq

3 取消设置引导密码(可选)

docker-compose.yml

ELASTIC_PASSWORD

4 替换密码
kibana/config/kibana.yml

  1. elasticsearch.username: elastic
  2. elasticsearch.password: EtWvHc8lGh05YS7vS1mq

logstash/config/logstash.yml

  1. xpack.monitoring.elasticsearch.username: elastic
  2. xpack.monitoring.elasticsearch.password: EtWvHc8lGh05YS7vS1mq

logstash/pipeline/logstash.conf

  1. output {
  2. elasticsearch {
  3. hosts => "elasticsearch:9200"
  4. user => "elastic"
  5. password => "EtWvHc8lGh05YS7vS1mq"
  6. ecs_compatibility => disabled
  7. }
  8. }

重启服务

  1. docker-compose restart kibana logstash

3.2 安装插件

1. 命令安装
在Dockerfile添加下面格式命令

  1. RUN elasticsearch-plugin install analysis-icu

2. 手动安装

进入容器

  1. docker exec -it e40bd5ee5f42 /bin/bash

宿主机解压好后,想容器复制插件

  1. docker cp /usr/local/ik/ 容器名:/usr/share/elasticsearch/plugins
  1. docker cp /usr/local/ik/ docker-elk_elasticsearch_1:/usr/share/elasticsearch/plugins

重启容器

  1. docker restart 41e4c48f216c

4 ES核心概念

  1. 索引
  2. 字段类型(mapping)
  3. 文档

集群、节点、索引、类型、文档、分片、映射是什么?
elesticsearch是面向文档,关系行数据库和delecticsearch客观的对比

Relation DBElasticsearch
数据库索引(indices)
表(tables)types(逐渐弃用)
行(rows)documents
字段(columns)fields

物理设计:
eleasticsearch在后台把每个索引分成多个分片,每分分片可以在集群中的不同服务器间迁移

文档

elasticsearch是面向文档的,name就意味着索引和搜索数据的做小单位是文档,在elasticsearch中,文档有以下几个重要属性。

  • 自我包含,一篇文档同时包含字段和对应的值,也就是同时包含key:value
  • 可以使层次型的,一个文档中包含自文档,复杂的逻辑实体就是这么来的。
  • 灵活的结构,文档不依赖预先定义的模式,我们指导关系型数据库中,要提前定义字段才能使用,在elasticsearch中,对于字段是非常灵活的,有时候,我们可以忽略该字段,或者动态的添加一个新的字段。
    类型
    映射类型
  1. name: string test
  2. birt: date

索引
就是数据库

一个集群至少有一个节点,而一个节点就是一个elasticsearch进程,节点可以有多个索引
如果创建索引,那么有5个分片(primary shard,又称主分片)构成的,每一个主分片会有一个副本(replic shard, 又称复制分片)

一个分片是一个Lucene索引
倒排索引

elesticsearch使用的是一种称为倒排索引的机构,采用Lucene倒排索作为底层。这种结构适用于快速的全文搜索,一个索引由文档中所有不重复的列表构成,对于每一个次,都有一个包含它的文档列表。
例如,现有两个文档,每个文档包含如下内容:

  1. study every day, good good up to forever # 文档1
  2. Tto forever, study erery day # 文档2

如果要搜索含有python标签的文章,那相对于查找的所有原始数据而言,查找倒排

5 IK分词器插件

什么事IK分词器?

分词:即把一段中文或者别的划分成一个个关键字,我们在搜索时候会把自己的信息进行分词,会把数据库中的数据进行分词,然后进行一个匹配操作,默认的中文分词是将每个字看成一个词。

IK提供了两个分词算法:ik_smart和ik_max_word,其中ik_smart为最少的切分,ik_max_word为最细力度划分。

1. 安装
注意版本
https://github.com/medcl/elasticsearch-analysis-ik

查看已加载的插件
elasticsearch-plugin.bat

  1. elasticsearch-plugin list

  1. # 最少切分
  2. GET _analyze
  3. {
  4. "analyzer": "ik_smart",
  5. "text": "人民教育出版社"
  6. }

  1. # 最细力度划分:可能所有组合
  2. GET _analyze
  3. {
  4. "analyzer": "ik_max_word",
  5. "text": "人民教育出版社"
  6. }

5.1 增加自己的配置

elasticsearch-analysis-ik-7.17.0confi/IKAnalyzer.cfg.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
  3. <properties>
  4. <comment>IK Analyzer 扩展配置</comment>
  5. <!--用户可以在这里配置自己的扩展字典 -->
  6. <entry key="ext_dict">my.dic</entry>
  7. <!--用户可以在这里配置自己的扩展停止词字典-->
  8. <entry key="ext_stopwords"></entry>
  9. <!--用户可以在这里配置远程扩展字典 -->
  10. <!-- <entry key="remote_ext_dict">words_location</entry> -->
  11. <!--用户可以在这里配置远程扩展停止词字典-->
  12. <!-- <entry key="remote_ext_stopwords">words_location</entry> -->
  13. </properties>

my.dic

  1. 有勇气的牛排

重启

  1. docker restart 41e4c48f216c

学习地址:狂神说
https://www.bilibili.com/video/BV17a4y1x7zq

相关文章