elasticsearch学习笔记(一)
一、先导知识
1. 集群
一个节点只能对应一个集群,一个集群可以包含多个节点。
ES可以把索引数据存放到服务器中,也可以sharding(分片)后存储到多台服务器上。每个索引有一个或多个分片,每个分片可以有多个副本。
主分片和它的副本分片存储在不同的节点上。
一个文档只能完整的存放在一个分片上。
2. json
json是一种数据交换格式,以下是一个包含各种类型和结构的JSON示例:
点击查看代码
{
"title":"JSON Example",
"author": {
"name":"John Doe",
"age": 35,
"isVerified":true
},
"tags":["json", "syntax", "example"],
"rating": 4.5,
"isPublished":false,
"comments": null
}
二、elasticsearch
elasticsearch(ES)是一个基于Lucene构建的开源、分布式、RESTfull接口全文搜索引擎,还是一个分布式文档数据库。
1. es和关系型数据库的对比
es是面向文档的,即它的最小搜索单位是文档。
2. 索引
索引是ES的一个逻辑存储,对应关系型数据库中的库。
注意:类型type目前已被废弃使用。
索引是具有相同结构的文档集合。elasticsearch大部分的操作都是基于索引来完成的。
3. 安装可视化工具kibana
官网下载和elasticsearch同版本的kibana,*tar.gz格式的
打开终端解压,修改解压后config目录中的kibana.yam配置文件
点击查看代码
server.port: 5601 #kibana端口
server.host: "0.0.0.0" #所有主机都能访问,或者也可以指定一个ip
elasticsearch.hosts: "http://localhost:9200" #配置es的访问地址
kibana.index: ".kibana" # 我的版本不支持,注释掉
i18n.locale: "zh-CN" #配置项默认是英文,配置成中文的
4. 最基本的操作CURD
create新增索引库和文档
POST 'ip地址:端口号/索引名'
POST 'ip地址:端口号/索引名/_doc/<文档id>'
这是一个空文档
POST 'ip地址:端口号/索引名/_doc/<文档id><{body}>'
body是JSON格式的文档内容
read获取索引库和文档
GET 'ip地址:端口号/索引名'
GET 'ip地址:端口号/索引名/_doc/<文档id>'
GET 'ip地址:端口号/<索引名>/<_doc>/<文档id>/_search <{query}>'
query是具体的查询条件
update更新索引库和文档,索引库不存在则新增
PUT 'ip地址:端口号/索引名'
PUT 'ip地址:端口号/索引名/_doc/<文档id><{JSON数据}>'
全量修改
PUT 'ip地址:端口号/索引名/_update/文档id {"doc":{}}'
增量修改
delete删除索引库和文档
DELETE 'ip地址:端口号/索引名'
DELETE 'ip地址:端口号/索引名/_doc/文档id'
参考文档:
https://blog.csdn.net/zhoushimiao1990/article/details/103226496
https://www.cnblogs.com/buchizicai/p/17093719.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端