当前位置:首页 > Windows程序 > 正文

ElasticSearch之安装及基本操作API

2024-03-31 Windows程序

技术图片

ElasticSearch 是目前非常流行的搜索引擎,对海量数据搜索是非常友好,并且在高并发场景下,也能发挥出稳定,快速特点。也是大数据和索搜服务的开发人员所极力追捧的中间件。虽然 ElasticSearch 深受大家的喜爱,但是它的迭代速度之快,所以在相关社区老是有听说到学不动了的话语,也正是这种不断完善,才能拥有现在的社区活跃。我使用 ElasticSearch 时,从 5.x 到 6.x 版本,再到现在接触到 7.x 版本。从版本升级中,也看到了 ElasticSearch 对主流技术变化的拥抱,最明显的是新版 JDK 版本的支持及容器技术的支持。

安装

本文基于目前最新版本ElasticSearch-7.5.0进行操作,如官网下载太慢,可在【ytao公众号】中发送es获取下载链接。

安装环境及本文相关包:

操作系统 CentOS 7.5 64位 ElasticSearch 7.5.0 Kinbana 7.5.0 JDK 环境

ElasticSearch 在 7.x 中自带 JDK 环境,所以现在不一定要安装 JDK。默认是先判断当前服务器是否安装 JDK,如果安装了就使用服务器已安装的 JDK,否则会使用自带的 JDK,当然这个也是可以手动设置。

创建启动账号

由于 ElasticSearch 默认是不支持 root 账号权限启动,所以第一步要先创建启动账号。
创建一个 ElasticSearch 的运行组 es:

groupadd es

在 es 组中创建用户:

useradd elastic -g es

设置新用户密码:

passwd elastic

给解压出的 ElasticSearch 包授权:

chown -R elastic:es elasticsearch-7.5.0 修改配置文件

进入到/elasticsearch-7.5.0目录,在config目录里有个elasticsearch.yml文件,修改里面当前需要的配置。

cluster.name 是所属集群的名称

node.name 当前节点名称

network.host 当前节点所绑定地址,绑定到0.0.0.0所有的访问

http.port 对外提供服务的端口号

path.data 数据存储目录,这个我一般不适用默认目录,但是要给自定义的目录授权

path.log 日志目录,和 path.data 类似配置

另外一个重要的配置,在当前目录中的jvm.options文件设置。
这里设置堆内存大小,建议设置机器内存的 50% 大小。

-Xms4g -Xmx4g

其他配置暂时没用到,暂不分析,今后的文章中用到再进行讲解。

启动

安装配置文件设置的值默认启动,直接执行./bin/elasticsearch,果然不出乎所意料,启动异常。

上图中抛了两个异常。

第一个是说虚拟内存太小,至少需要 262144。

第二个当前默认配置不适合,[discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes]配置中至少有一个配置。

现在就增大服务器虚拟内存:

# 编辑 sysctl.conf 文件 vim /etc/sysctl.conf # 在 sysctl.conf 中添加 vm.max_map_count=262144 # 查看刚设置的是否生效 sysctl -p

设置 cluster.initial_master_nodes 配置参数:

cluster.initial_master_nodes: ["node-1"]

再次启动完成后,没有异常抛出,访问ip:9200,返回数据信息,其中包括集群名称,节点名,版本信息等等:

技术图片

基本操作API

在进行 API 操作前先安装 kibana,以下命令执行将全部在 kibana 中执行。解压 kibana 后,在kibana.yml中设置 ElasticSearch 地址elasticsearch.hosts: [":9200"]。通过bin/kibana进行启动。安装比较简单,这里不做详细阐述。

索引操作 创建索引

创建 person 索引例子,number_of_shards 为分片数量,number_of_replicas 为索引的副本数,这里主要演示创建索引时可设置一些相关参数,且为非必填项。

PUT /person { "mappings" : { "properties": { "name" : { "type" : "text", "fields" : { "keyword" : { "type" : "keyword", "ignore_above" : 256 // 长度超过ignore_above设定的值,不会被索引或存储 } } } } }, "settings": { "number_of_shards": 1, "number_of_replicas": 1 } }

执行命令结果:

技术图片

查询索引

使用 GET 请求方式查询索引信息:

GET /person

返回结果

技术图片

删除索引

使用 DELETE 请求方式:

# 删除 person 索引 DELETE /person # 删除全部索引 DELETE /_all # 通配符删除 DELETE /person* mapping 操作

查询 person 索引的 mapping :

GET /person/_mapping

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/45075.html

Jm-杰米博客Jamie
草根站长的技术交流乐园!IT不会不要紧快来好好学习吧!
  • 20786文章总数
  • 7494595访问次数
  • 建站天数
  • 友情链接