基于kibana的DevTool可以很方便的进行ES的测试。当然,你可以用curl命令或者Postman等工具进行测试。
下面是一些基本的数据操作,可以参考一下。
# 获取ES的基本信息
GET _search
{
"query": {
"match_all": {}
}
}
# 添加数据:
# megacorp是index索引名称
# employee是类型
# 1是文档唯一ID
PUT /megacorp/employee/1
{
"first_name" : "John",
"last_name" : "Smith",
"age" : 25,
"about" : "I love to go rock climbing",
"interests": [ "sports", "music" ]
}
# 获取对应索引megacorp,类型employee,ID为2的文档
GET /megacorp/employee/1
# 查看对应索引megacorp,类型employee,ID为2的文档是否存在
HEAD /megacorp/employee/1
# 添加数据:
# megacorp是index索引名称
# employee是类型
# 2是文档唯一ID
PUT /megacorp/employee/2
{
"first_name" : "Jane",
"last_name" : "Smith",
"age" : 32,
"about" : "I like to collect rock albums",
"interests": [ "music" ]
}
# 获取对应索引megacorp,类型employee,ID为2的文档
GET /megacorp/employee/2
# 添加数据:
# megacorp是index索引名称
# employee是类型
# 3是文档唯一ID
PUT /megacorp/employee/3
{
"first_name" : "Douglas",
"last_name" : "Fir",
"age" : 35,
"about": "I like to build cabinets",
"interests": [ "forestry" ]
}
# 获取对应索引megacorp,类型employee,ID为3的文档
GET /megacorp/employee/3
# 获取对应索引megacorp,类型employee的所有文档
GET /megacorp/employee/_search
# 搜索对应索引megacorp,类型employee的last name 为“Smith”的文档
GET /megacorp/employee/_search?q=last_name:"Smith"
# 搜索对应索引megacorp,类型employee的last name 为“Smith” 且about字段中包含“albums”的文档
GET /megacorp/employee/_search?q=last_name:"Smith" AND about:albums
# 搜索对应索引megacorp,类型employee的last name 为“Smith”的文档
GET /megacorp/employee/_search
{
"query": {
"match": {
"last_name": "Smith"
}
}
}
# 搜索对应索引megacorp,类型employee的last name 为“Smith”的文档中年龄大于25的部分
GET /megacorp/employee/_search
{
"query": {
"bool": {
"must": {
"match": {
"last_name": "Smith"
}
},
"filter": {
"range": {
"age": {
"gt": 25
}
}
}
}
}
}
# 搜索对应索引megacorp,类型employee的about字段中包括“rock”或者“climbing” 全字的文档
GET /megacorp/employee/_search
{
"query": {
"match": {
"about": "rock climbing"
}
}
}
# 搜索对应索引megacorp,类型employee的about字段中包括“rock climbing”全字的文档
GET /megacorp/employee/_search
{
"query": {
"match_phrase": {
"about": "rock climbing"
}
}
}
# 搜索对应索引megacorp,类型employee的about字段中包括“rock climb”为前缀的文档
GET /megacorp/employee/_search
{
"query": {
"match_phrase_prefix": {
"about": "rock climb"
}
}
}
# 搜索对应索引megacorp,类型employee的about字段中包括“rock climbing”全字的文档,并且高亮搜索到的词
GET /megacorp/employee/_search
{
"query": {
"match": {
"about": "rock climbing"
}
},
"highlight": {
"fields": {
"about": {}
}
}
}
# 聚合对应索引megacorp,类型employee的文档中interests字段。ES 5.0版本以上不再支持
GET /megacorp/employee/_search
{
"aggs": {
"all_interests": {
"terms": { "field": "interests" }
}
}
}
参考文档:LiveToolkit