调试工具
Postman
RESTful API
有关 RESTful API的介绍 请查阅
RESTful API 在 Elasticsearch 中的应用
动作 | 解释 |
---|---|
PUT | 更新或者新增文档 |
GET | 检索文档 |
DELETE | 删除文档 |
HEAD | 校验是否存在该文档 (校验状态码: 200 存在,404不存在) |
Elasticsearch 与 关系型数据库的对应关系
Relational DB -> Databases -> Tables -> Rows -> Columns
Elasticsearch -> Indices -> Types -> Documents -> Fields
元数据(Metadata)
身份元数据(Identity meta-fields)
身份元数据顾名思义就是能够唯一标识Document的,Elasticsearch中主要有四个身份元数据
1、_index:文档所属的index,这个index相当于关系型数据库中的数据库概念,它是存储和索引关联数据的地方;
2、_uid:其由_type和_id组成;
3、_type:文档所属的mapping type,相当于关系型数据库中的表的概念;
4、_id:文档的id,这个可以由Elasticsearch自动生成,也可以在写入Document的时候由程序指定。它与_index和_type组合时,就可以在Elasticsearch中唯一标识一个文档。
文档源元数据(Document source meta-fields)
文档源元数据主要有两个:
1、_source:
这个字段标识文档的主体信息,也就是我们写入在中的数据;
2、_size:
这个字段存储着_source字段中信息的大小,单位是byte;不过这需要我们安装mapper-size插件。
索引元数据(Indexing meta-fields)
1、_all:
这个字段索引了所有其他字段的值;
2、_field_names:
存储着文档中所有值为非空的字段信息,这在快速查找/过滤值存在或者值为空的情况下非常有用;
3、_timestamp:
存储着当前文档的时间戳信息,可以由程序指定,也可以由ElasticSearch自动生成,其值会影响文档的删除(如果启用了TTL机制);
4、_ttl:
标识着当前文档存储的时长,超过了这个时长文档将会被标识为delete,之后会被ElasticSearch删除。
路由元数据(Routing meta-fields)
1、_parent:用于创建两个映射的父子之间的关系;
2、_routing:自定义路由值,可以路由某个文档到具体的分片(shard)。
其他元数据
_meta:特定于应用程序的元数据。
检索单个文档
地址: GET /megacorp/employee/1
GET请求
UR组成: index(库名) / type(表名) / ID
请求结果
{
"_index": "megacorp", // 库名
"_type": "employee", // 表名
"_id": "1", // id
"_version": 8, // 版本号
"found": true, // 是否找到该文档
"_source": { // 存储的原始文档数据
"first_name": "John",
"last_name": "Smith",
"age": 25,
"about": "I love to go rock climbing",
"interests": [
"sports",
"music"
]
}
}
轻量搜索
关键词 【_search】
请求地址: GET /megacorp/employee/_search
请求数据:
{
"took": 2,
"timed_out": false,
// 分片信息 ? 具体位未知 ~~~
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
// 数据
"hits": {
// 总条数
"total": 3,
// 排名最高的分数值
"max_score": 1,
// 数据值
"hits": [
{
// 库名
"_index": "megacorp",
// 表名
"_type": "employee",
// ID
"_id": "2",
// 排名分数
"_score": 1,
// 文档数据
"_source": {
"first_name": "Jane",
"last_name": "Smith",
"age": 32,
"about": "I like to collect rock albums",
"interests": [
"music"
]
}
},
{
"_index": "megacorp",
"_type": "employee",
"_id": "1",
"_score": 1,
"_source": {
"first_name": "John",
"last_name": "Smith",
"age": 25,
"about": "I love to go rock climbing",
"interests": [
"sports",
"music"
]
}
},
{
"_index": "megacorp",
"_type": "employee",
"_id": "3",
"_score": 1,
"_source": {
"first_name": "Douglas",
"last_name": "Fir",
"age": 35,
"about": "I like to build cabinets",
"interests": [
"forestry"
]
}
}
]
}
}