Elasticsearch之基本API操作
Elasticsearch之基本API操作
创建索引:使用PUT请求,http://localhost:9200/ + 索引名称
创建索引的映射:PUT, http://localhost:9200/+索引名称+/_mapping
{
"properties": {
"name":{
"type": "text",
"index": true
},
"sex":{
"type": "keyword",
"index": true
},
"tel":{
"type": "keyword",
"index": false
}
}
}
查询映射:GET, http://localhost:9200/+索引名称+/_mapping
删除索引:使用DELETE请求,http://localhost:9200/ + 索引名称
获取索引:使用GET请求,http://localhost:9200/ + 索引名称
获取所有索引:使用GET请求,http://localhost:9200/_cat/indices?v
上传数据:使用POST请求,http://localhost:9200/ + 索引名称 + /_doc (+/3 指定数据的id,不加则使用默认生成的id),此处需要注意:如果增加数据时明确数据主键,那么请求方式也可以为 PUT
获取单条数据:使用GET请求,http://localhost:9200/+ 索引名称 +/_doc/+ 数据的id
获取索引下的所有数据:使用GET请求,http://localhost:9200/+ 索引名称 +/_search
修改数据:若要修改所有数据,跟上传数据一样,会自动覆盖之前的数据;若只修改部分数据,使用POST请求,http://localhost:9200/ + 索引名称 + /_update/+ id 文件格式为:
{
"doc": {
"键名":"值",
"键名":"值"
}
}
带参查询:URL带参,GET请求,http://localhost:9200/+索引名称+/_search/q=键名:值
请求体带参,GET请求,http://localhost:9200/+索引名称+/_search,附带JSON请求体:
查找符合条件的数据:
{
"query":{
"match":{
"title":"一测"
}
}
}
全查:
{
"query":{
"match_all":{}
}
}
查询指定字段:
{
"query":{
"match_all":{}
},
"_source":["键名"]
}
分页查询:
{
"query":{
"match_all":{}
},
"from":0,
"size":2
}
排序查询:
{
"query":{
"match_all":{}
},
"sort":{
"键名":{
"order":"desc"//降序
}
}
}
多条件查询:
{
"query":{
"bool":{
"must":[{
"match":{
"title":"一"
}
},{
"match":{
"id":9
}
}]
}
}
}
范围查询:
{
"query":{
"bool":{
"should":[{
"match":{
"content":"它"
}
},{
"match":{
"title":"一"
}
}],
"filter":{
"range":{
"id":{
"gt":20//大于
}
}
}
}
}
}
完全匹配:
{
"query":{
"match_phrase":{
"title" : "一"
}
}
}
高亮查询:
{
"query":{
"match_phrase":{
"title" : "一"
}
},
"highlight":{
"fields":{
"title":{}//<----高亮这字段
}
}
}
聚合查询:
{
"aggs":{//聚合操作
"price_group":{//名称,随意起名
"terms":{//分组
"field":"price"//分组字段
}
}
},
"size":0//不附带原始结果
}
对某一字段求平均值:
{
"aggs":{
"price_avg":{//名称,随意起名
"avg":{//求平均
"field":"price"
}
}
},
"size":0
}