Elasticearch 安装 基础介绍 (一)

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: Elasticearch 安装实战操作作者主页:https://www.couragesteak.com/

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 安装

在这里插入图片描述

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

启动:
bin/elasticsearch.bat

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

{
  "name" : "USERMIC-AQENDNF",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "SgT0Xh5-QvCHBwjnrlMhOw",
  "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"
}

2.1.2 linxu安装

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

文件尾部添加如下代码

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

2、启动elasticsearch-head

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行

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. 启动

docker-compose up

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

2 为内置用户初始化密码

docker-compose exec -T elasticsearch bin/elasticsearch-setup-passwords auto --batch
Changed password for user apm_system
PASSWORD apm_system = 40iHqszWXZuBHJUAO2rO

Changed password for user kibana_system
PASSWORD kibana_system = Mld3fRmxEmJy5mLwhbc2

Changed password for user kibana
PASSWORD kibana = Mld3fRmxEmJy5mLwhbc2

Changed password for user logstash_system
PASSWORD logstash_system = FEwag4dLfVJS6cVVZemn

Changed password for user beats_system
PASSWORD beats_system = S6L29ErIA3jigEQLTvnW

Changed password for user remote_monitoring_user
PASSWORD remote_monitoring_user = 7zWztQAFCoWytAA9VCDm

Changed password for user elastic
PASSWORD elastic = EtWvHc8lGh05YS7vS1mq

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

docker-compose.yml

ELASTIC_PASSWORD

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

elasticsearch.username: elastic
elasticsearch.password: EtWvHc8lGh05YS7vS1mq

logstash/config/logstash.yml

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

logstash/pipeline/logstash.conf

output {
    elasticsearch {
        hosts => "elasticsearch:9200"
        user => "elastic"
        password => "EtWvHc8lGh05YS7vS1mq"
        ecs_compatibility => disabled
    }
}

重启服务

docker-compose restart kibana logstash

3.2 安装插件

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

RUN elasticsearch-plugin install analysis-icu

2. 手动安装

进入容器

docker exec -it e40bd5ee5f42 /bin/bash

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

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

重启容器

docker restart 41e4c48f216c

4 ES核心概念

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

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

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

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

文档

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

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

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

一个分片是一个Lucene索引

倒排索引

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

study every day, good good up to forever    # 文档1
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

elasticsearch-plugin list

在这里插入图片描述

# 最少切分
GET _analyze
{
    "analyzer": "ik_smart",
    "text": "人民教育出版社"
}

在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述

5.1 增加自己的配置

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

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

my.dic

有勇气的牛排

重启

docker restart 41e4c48f216c

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

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
1月前
|
监控 安全 数据可视化
Splunk工具学习(下载、安装、简单使用、核心概念)
Splunk工具学习(下载、安装、简单使用、核心概念)
195 0
|
11月前
|
Ubuntu Linux iOS开发
搭建Python开发环境详细步骤
搭建Python开发环境详细步骤
313 0
|
安全 前端开发 网络协议
亲妈级Nginx安装教程&&核心配置讲解( 最新版 ),一步到位
亲妈级Nginx安装教程&&核心配置讲解( 最新版 ),nginx如何安装以及安装之后如何配置, 以及配置文件中的各个参数的作用,一步到位
299 0
|
存储 缓存 资源调度
pnpm技术体系之:高性能包管理工具
pnpm 是 performant npm(高性能的 npm),它是一款快速的,节省磁盘空间的包管理工具,同时,它也较好地支持了 workspace 和 monorepos。
pnpm技术体系之:高性能包管理工具
|
Web App开发 运维 安全
第二章 环境的选择和安装
第二章 环境的选择和安装
第二章 环境的选择和安装
|
存储 NoSQL Java
环境篇之项目软件版本|学习笔记
快速学习环境篇之项目软件版本
77 0
环境篇之项目软件版本|学习笔记
|
大数据 Linux 虚拟化
基于mac构建大数据伪分布式学习环境(一)-安装CentOS系统
本篇主要介绍如何通过Mac Vmware来安装CentOS系统
132 0
基于mac构建大数据伪分布式学习环境(一)-安装CentOS系统
|
SQL 关系型数据库 MySQL
基于mac构建大数据伪分布式学习环境(五)-部署MySQL8.30
本文主要讲解MySQL在Linux环境下的部署
150 0
|
数据可视化 Linux
借助第三方工具,在Linux中快速搭建LAMP环境
本文章意在介绍一种,快速搭建Linux中Web环境的配置方式,以降低LAMP环境的搭建门槛。
99 0
借助第三方工具,在Linux中快速搭建LAMP环境
goj基础环境的配置
一、Goland官网下载 官网下载地址:https://www.jetbrains.com/go/download/other.html
179 0
goj基础环境的配置