ElasticSearch学习第一篇:windows环境下安装使用

ElasticSearch介绍

Elasticsearch是一个基于Lucene库的搜索引擎。它提供了一个分布式、支持多租户的全文搜索引擎,具有HTTP Web接口和无模式JSON文档。Elasticsearch是用Java开发的,并在Apache许可证下作为开源软件发布。官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。[5]根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr,也是基于Lucene。[6] -----维基百科

上面是来自权威的维基百科的介绍,下面是我个人的一些拙见,不对的地方还请赐教。

  1. 它是一个自带分布式的搜索引擎,这点它跟solr的区别最明显。PS:因为solr想达到集群效果需搭配zookeeper来实现
  2. 查询速度快,在遇到千万级别以上的数据量,它比传统的关系型数据库,或者非关系型数据库都要快
  3. 它自带一套完全Restful 风格的API系统,通过该API我们与ES进行交互

本文主要介绍如何在Windows下安装使用ES以及如何配置密码,更多的介绍可以浏览官网文档说明https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html

环境准备

运行环境/软件名称版本
操作系统win10
Java jdk1.8.0_51
Elasticsearch7.16.2
Kibana7.16.2

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

特别注意:这里Kibana的版本跟Elasticsearch要保持一致,还有建议大家尽量升级到7.16以上的版本,因为之前的版本会存在log4j漏洞问题

Elasticsearch安装

安装成windows服务

解压官网下载下来的压缩包后,打开bin文件夹,你会看到有很多批处理文件,这些都是官方帮我们写好的。

想运行起来ES有两种办法:第一种是直接双击elasticsearch.bat 批处理文件打开一个控制台程序,第二种是使用cmd进入bin目录然后执行elasticsearch-service.bat install命令将ES注册到我们windows服务。

在这里插入图片描述

打开windows服务列表看看是否存在elasticsearch-service-x64服务
在这里插入图片描述

启动服务,并打开http://localhost:9200/ 页面看看。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Wjp5GmxE-1642045240485)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220111224531784.png)]

如果打不开这个页面,建议看看本地是否有安装java环境。

配置账号密码

修改config目录下面的elasticsearch.yml文件,在里面添加如下内容,保存配置,然后重启ES。

xpack.security.enabled: true
xpack.license.self_generated.type: basic
xpack.security.transport.ssl.enabled: true

cmd进入bin文件夹,输入elasticsearch-setup-passwords interactive 命令,按y确认后即可设置密码,为了方便演示,这里我设置的密码都是123456

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pkUkBK0u-1642045240488)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220111222020449.png)]

这时候你在访问http://localhost:9200/ 会提示让你输入账号密码,

还有一种方式通过账号密码链接直接登录http://username:password@localhost:9200

例如我这边是http://elastic:123456@localhost:9200

到这里,ES的账号密码就设置完成了。

Elasticsearch的基本概念

Node 与 Cluster

Elastic 本质上是一个分布式数据库,允许多台服务器协同工作,每台服务器可以运行多个 Elastic 实例。

单个 Elastic 实例称为一个节点(node)。一组节点构成一个集群(cluster)。

Index

Elastic 会索引所有字段,经过处理后写入一个反向索引(Inverted Index)。查找数据的时候,直接查找该索引。

所以,Elastic 数据管理的顶层单位就叫做 Index(索引)。它是单个数据库的同义词。每个 Index (即数据库)的名字必须是小写。

直接浏览器输入命令http://elastic:123456@localhost:9200/_cat/indices?v可以查看当前节点的所有 Index。

在这里插入图片描述

Document

Index 里面单条的记录称为 Document(文档)。许多条 Document 构成了一个 Index。

Document 使用 JSON 格式表示,下面是一个例子。

{
"user": "张三",
"title": "工程师",
"desc": "数据库管理"
}

同一个 Index 里面的 Document,不要求有相同的结构(scheme),但是最好保持相同,这样有利于提高搜索效率。

Type

Document 可以分组,比如news这个 Index 里面,可以按栏目分组(娱乐和体育),也可以按地区分组(国内和国外)。这种分组就叫做 Type,它是虚拟的逻辑分组,用来过滤 Document。

不同的 Type 应该有相似的结构(schema),举例来说,id字段不能在这个组是字符串,在另一个组是数值。这是与关系型数据库的表的一个区别。性质完全不同的数据(比如productslogs)应该存成两个 Index,而不是一个 Index 里面的两个 Type(虽然可以做到)。

直接浏览器输入命令http://elastic:123456@localhost:9200/_mapping?pretty=true可以列出每个 Index 所包含的 Type。

下面的命令可以列出每个 Index 所包含的 Type。根据规划,Elastic 6.x 版只允许每个 Index 包含一个 Type,7.x 版将会彻底移除 Type。

​ ---- 基础概念内容来自《全文搜索引擎 Elasticsearch 入门教程

Elasticsearch使用

这里我以postman为例,做一些简单的CURD操作,后续我使用kibana也可以做简单演示

这里要注意一点,在postman要实现登录效果,我们可以用Authorization的Basic Auth

在这里插入图片描述

索引的创建与删除

创建索引

PUT /news
{
   "settings" : {
      "number_of_shards" : 3,
      "number_of_replicas" : 1
   }
}

参数说明:

number_of_shards :主分片数量

number_of_replicas:每个主分片的副分片

在这里插入图片描述

再去使用查看当前节点所有索引的命令看看是否有新增

在这里插入图片描述

删除索引

只需要把请求方式改成delete就行

DELETE /news 

在这里插入图片描述

新增

POST /news/_doc/1

{
    "title": "娱乐测试新闻1",
    "column": "娱乐",
    "content": "张三上网开心冲浪了"
}

查询

单个查询

GET /news/_doc/1  

查询所有:模糊查询title为测试的数据

GET /news/_doc/_search

{
    "query": {
        "match": {
            "title": "测试"
        }
    }
}

更新

部分更新

POST /news/_doc/1/_update
{
   "doc" : {
      "content" : "测试更新内容"
   }
}

全部更新

PUT /news/_doc/1   
{
    "title": "娱乐测试新闻1",
    "column": "娱乐",
    "content": "张三上网开心冲浪了",
    "author":"张三"
}

删除

删除单个数据

DELETE /news/_doc/1

删除整个索引

DELETE /news

到这边,简单的增删改查就已经差不多了。

更多的查询大家还是上官网看文档,虽然文档有些过期,但是还是可以使用https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html

Kibana

Kibana 是一款免费开源的前端应用程序,其基础是 Elastic Stack,可以为 Elasticsearch 中索引的数据提供搜索和数据可视化功能。尽管人们通常将 Kibana 视作 Elastic Stack(之前称作 ELK Stack,分别表示 Elasticsearch、Logstash 和 Kibana)的制图工具,但也可将 Kibana 作为用户界面来监测和管理 Elastic Stack 集群并确保集群安全性,还可将其作为基于 Elastic Stack 所开发内置解决方案的汇集中心。Elasticsearch 社区于 2013 年开发出了 Kibana,现在 Kibana 已发展成为 Elastic Stack 的窗口,是用户和公司的一个门户。

​ ---- 来自官网的说明

简单理解,它就是一个官网提供的一个可视化管理工具

这里我主要是说下Kibana如何与ES建立连接以及一些常见的功能操作

配置

修改config文件里面的kibana.yml

因为我们有设置了密码,所以在elasticsearch.hosts选项,需要把带账号密码的完整ES节点地址输入

elasticsearch.hosts: ["http://elastic:123456@localhost:9200"]

还有一个地方,默认是英文版,想变成中文版本只需要改i18n.locale选项

i18n.locale: "zh-CN"

保存完配置,我们就可以直接双击bin文件下的kibana.bat批处理文件,这时候会弹出一个控制台程序,然后打开Kibana默认地址http://localhost:5601/ 输入elastic 123456

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8EseeJga-1642045240505)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220113105833590.png)]

到这里我们就成功运行起来kibana了,但是每次都要去目录下运行那个批处理文件,还有运行一个控制台程序。这明显不太适用于生产环境,所以我利用nssm把它安装成了windows服务,具体操作可以参考我之前的文章《minio:安装部署并安装成windows服务

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8S5vwnPZ-1642045240508)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220113111744760.png)]

部分功能模块

找到左侧的开发工具,这里也可以执行一些简单的增删改查

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OM6NYo7f-1642045240510)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220113112137508.png)]

还有一个索引集群管理的工具也比较好用,可以很直观看出我们当前所有的索引状态、空间等等

在这里插入图片描述

更多说明文档可以上官网看看https://www.elastic.co/cn/what-is/kibana

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hello,Mr.S

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值