本文主要是介绍Elasticsearch 搜索名词的理解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在进一步使用 Elasticsearch 之前,让我们先了解几个关键概念。
在逻辑层面:
- Index (索引):这里的 Index 是名词,一个 Index 就像是传统关系数据库的 Database,它是 Elasticsearch 用来存储数据的逻辑区域
- Document (文档):Elasticsearch 使用 JSON 文档来表示一个对象,就像是关系数据库中一个 Table 中的一行数据
- Type (类型):文档归属于一种 Type,就像是关系数据库中的一个 Table
- Field (字段):每个文档包含多个字段,类似关系数据库中一个 Table 的列
我们用一个表格来做类比,如下:
Elasticsearch | MySQL |
---|---|
Index | Database |
Type | Table |
Document | Row |
Field | Column |
在物理层面:
- Node (节点):node 是一个运行着的 Elasticsearch 实例,一个 node 就是一个单独的 server
- Cluster (集群):cluster 是多个 node 的集合
- Shard (分片):数据分片,一个 index 可能会存在于多个 shard
使用
接下来,我们看看如何建立索引、创建文档等,就好比在 MySQL 中进行诸如创建数据库,插入数据等操作。
添加文档
下面,我们将创建一个存储电影信息的 Document:
- Index 的名称为 movie
- Type 为 adventure
- Document 有两个字段:name 和 actors
我们使用 Elasticsearch 提供的 RESTful API 来执行上述操作,如图所示:
- 用 url 表示一个资源,比如
/movie/adventure/1
就表示一个index
为 movie,type
为 adventure,id
为 1 的 document - 用 http 方法操作资源,如使用 GET 获取资源,使用 POST、PUT 新增或更新资源,使用 DELETE 删除资源等
查看所有的索引命令:
curl 'localhost:9200/_cat/indices?v'
索引下数据查看
http get :9200/customer/_search
Elasticsearch 启动后,也启动了两个端口 9200 和 9300:
- 9200 端口:HTTP RESTful 接口的通讯端口
- 9300 端口:TCP 通讯端口,用于集群间节点通信和与 Java 客户端通信的端口
现在,让我们做一些测试。在浏览器访问链接 http://localhost:9200/ ,或使用 curl 命令:
这篇关于Elasticsearch 搜索名词的理解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!