ElasticSearch之安装及基本操作API
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:
在 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% 大小。
其他配置暂时没用到,暂不分析,今后的文章中用到再进行讲解。
启动安装配置文件设置的值默认启动,直接执行./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 操作前先安装 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
- 上一篇:Windows 共享文件
- 下一篇:C# Cef winform 脚本的执行