elasticSearch学习入门-安装使用
文章目录1. es框架2. es相关术语2.1 相关概念2.2 倒排索引3. es安装部署4. header 插件安装5. es相关api使用5.1 集群api5.2 索引相关5.2.1 创建索引5.2.2 查看索引库5.2.3 创建映射关系5.2.4 删除索引5.3 数据相关5.3.1 添加数据5.3.2 修改数据5.3.3 删除数据5.4 自动创建映射6. 内置分词和中文分词6.1. 内置分词器6.2. 中文分词器7. 查询7.1 queryURL 查询7.2 DSL查询8 并发乐观锁1. es框架 Elasticsearch 是一个兼有搜索引擎和NoSQL数据库功能的开源系统,基于Java/Lucene构建,可以用于全文搜索,结构化搜索以及近实时分析。2. es相关术语2.1 相关概念es和数据库作用类似,所以我们这里对es相关术语的学习和关系型数据库进行对比便于读者理解学习es概念数据库概念index 索引数据库表type 类型(es 7版本弃用)表逻辑类型Document 文档表的一行记录filed 字段记录对应的字段(字段名、类型、长度等)mapping 映射表结构定义NRT 近实时一秒或者一秒内延迟(Near real time 近乎实时)Node 节点集群部署情况下的每一个服务节点shard replica数据分片和备份2.2 倒排索引es最核心的两个概念为索引和搜索,这里的建立的索引即为倒排索引,在说到倒排索引之前 我们需要先了解一下何为正排索引正排索引:所谓正排是针对记录都有一个唯一标识,我们通过唯一标识来搜索对应的记录信息,比如数据库主键查询key=value,但是对于文档类型关键字查询就需要扫描全部文档记录找到匹配的记录类似于数据库的like模糊查询性能低下。倒排索引:与正排索引不同会将文档通过分词形成一个个词组,建立词组和文档唯一标识的记录,value(分词后)=》key同时这样处理还可以记录词组在文档出现的频次和词组位置,便于我们更好更快的搜索。3. es安装部署#下载eswgethttps://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.4.1-linux-x86_64.tar.gz#解压项目tar-zxvfelasticsearch-7.4.1.tar.gz-C/usr/local#修改配置elasticsearch.yml,jvm.optionsscpusername@servername:/path/远程目录 /path/本地目录#因为es服务不能直接使用root用户启动#所以这里需要新建用户es 并为该用户赋予es使用权限adduser eschown-Res /usr/local/#启动es 切换到es用户sues ./bin/elasticsearch9200发布端口 9300集群节点之间的内部通讯# # ---------------------------------- Cluster ----------------------------------- # # Use a descriptive name for your cluster: # 设置集群名称 不设置默认分配 cluster.name: xiu-es # # ------------------------------------ Node ------------------------------------ # # Use a descriptive name for the node: # 设置单服务节点信息 node.name: xiu-node-1 # # ----------------------------------- Paths ------------------------------------ # #设置es数据存储路径 path.data: /usr/local/elasticsearch/elasticsearch-7.4.1/data # # Path to log files: #设置es日志存储路径 path.logs: /usr/local/elasticsearch/elasticsearch-7.4.1/logs # # ---------------------------------- Network ----------------------------------- # # Set the bind address to a specific IP (IPv4 or IPv6): # 设置可以远程访问的地址 0.0.0.0表示所有主机都可远程访问 network.host: 0.0.0.0 # # Set a custom port for HTTP: #设置http远程访问端口 9300是集群内部通讯端口 http.port: 9200 # # --------------------------------- Discovery --------------- # 设置集群节点地址 #discovery.seed_hosts: ["127.0.0.01"] # # Bootstrap the cluster using an initial set of master-eligible nodes: #设置集群节点 cluster.initial_master_nodes: ["xiu-node-1“]4. header 插件安装elasticsearch-header是es的可视化访问页面,由于head插件本质上还是一个nodejs的工程,因此需要安装node,使用npm来安装依赖的包。node环境安装参考# 下载head项目gitclone https://github.com/mobz/elasticsearch-head.git# 安装cnpminstall# 运行npmrun start5. es相关api使用5.1 集群api# 查看集群状态http://xxx.xx.x.xxx:9200/_cluster/health#查看所有节点信息http://xxx.xx.x.xxx:9200/_nodes#查看节点的状态信息 (ip 端口)http://xxx.xx.x.xxx:9200/_nodes/stats5.2 索引相关5.2.1 创建索引PUT请求: http://xxx.xx.x.xxx:9200/{index_name} PUT: http://xxx.xx.x.xxx:9200/singer请求参数{"settings":{"index":{//分片数(每个分片只存储一部分数据 所有分片共同)"number_of_shards":"5",//副本数(小于集群节点数),如果大于节点意味节点和副本在同一个机器,失去副本故障转移的意义"number_of_replicas":"0"}}}响应参数{"acknowledged":true,"shards_acknowledged":true,//索引名"index":"singer"}5.2.2 查看索引库GET请求: http://xxx.xx.x.xxx:9200/{index_name} GET: http://xxx.xx.x.xxx:9200/singer响应信息{//索引名(相当于数据库 表 库名)"my-index-test":{//索引别名"aliases":{},//映射关系(数
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2440767.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!