#创建简单索引,number_of_shards分片数量,number_of_replicas副本数量
PUT /users
{
"settings" : {
"number_of_shards" : 3,
"number_of_replicas" : 1
}
}
#查看setting
GET users/_settings
#查看mapping
GET users/_mapping
#创建索引并添加数据
#也用来更新整个文档,若已有id为1的数据,es会将原文档标记为已删除状态,并新增id为1的新文档,
#原文档并不会立即消失,但是却无法访问,在后续检索操作过程中,ES会慢慢处理这些已删除数据
PUT starts/_doc/1
{
"first_name" : "xiao",
"last_name" : "zhan",
"age" : 31,
"about" : "A handsome boy.",
"interests": [ "actors", "singer" ]
}
PUT starts/_doc/2
{
"first_name" : "zhang",
"last_name" : "zhehan",
"age" : 31,
"about" : "Another handsome boy.",
"interests": [ "actors", "singer" ]
}
#更新部分文档
#es会先根据id为1的文档构建新JSON,然后更新整个JSON,之后会对原文档进行标记删除,并且构建新文档
POST starts/_update/1
{
"doc":{
"age" : 32
}
}
#更新部分文档,使用脚本
POST starts/_update/1
{
"script":"ctx._source.age=ctx._source.age+1"
}
#创建新文档,不指定ID
POST starts/_doc
{
"first_name" : "gong",
"last_name" : "jun",
"age" : 30,
"about" : "A very good friend of Zhang Zhehan.",
"interests": [ "actors", "gamer" ]
}
#创建新文档,指定ID
POST starts/_doc/6
{
"first_name" : "gong",
"last_name" : "jun",
"age" : 30,
"about" : "A very good friend of Zhang Zhehan.",
"interests": [ "actors", "gamer" ]
}
#删除文档
DELETE starts/_doc/6
#查看索引文档的内容
GET starts/_search
{
"query": {
"match_all": {}
}
}
#查看索引文档的数量
GET starts/_count
{
"query": {
"match_all": {}
}
}
#获取某一个文档信息
GET starts/_doc/1
#获取某一个文档的_source字段
GET starts/_source/1
#获取first_name为zhang的文档信息
GET starts/_search?q=first_name:zhang
#使用查询表达式获取first_name为xiao的文档信息
GET starts/_search
{
"query" : {
"match" : {
"first_name" : "xiao"
}
}
}
#增加first_name为zhang的文档
PUT starts/_doc/3
{
"first_name" : "zhang",
"last_name" : "mingyu",
"age" : 25,
"about" : "My boyfriend.",
"interests": [ "programmer", "gamer" ]
}
PUT starts/_doc/4
{
"first_name" : "zhang",
"last_name" : "dejun",
"age" : 8,
"about" : "The son of gongjun and zhangzhehan.",
"interests": [ "programmer", "gamer" ]
}
#含过滤器的查询,年龄大于30的first_name为zhang的文档信息
GET starts/_search
{
"query" : {
"bool": {
"must": {
"match" : {
"first_name" : "zhang"
}
},
"filter": {
"range" : {
"age" : { "gt" : 30 }
}
}
}
}
}
#全文检索,分词检索,结果按相关度自动降序排列
GET starts/_search
{
"query" : {
"match" : {
"about" : "a handsome boy"
}
}
}
#短语检索
GET starts/_search
{
"query" : {
"match_phrase" : {
"about" : "handsome boy"
}
}
}
#短语检索,对比全文检索
GET starts/_search
{
"query" : {
"match_phrase" : {
"about" : "a handsome boy"
}
}
}
#高亮检索
GET starts/_search
{
"query" : {
"match_phrase" : {
"about" : "handsome"
}
},
"highlight": {
"fields" : {
"about" : {}
}
}
}
#高亮检索,自定义高亮标签
GET starts/_search
{
"query" : {
"match_phrase" : {
"about" : "handsome"
}
},
"highlight": {
"pre_tags" : ["<tag1>"],
"post_tags" : ["tag1>"],
"fields" : {
"about" : {}
}
}
}
#聚合,被聚合的字段
GET starts/_search
{
"aggs": {
"all_interests": {
"terms": { "field": "interests.keyword" }
}
}
}
#聚合+全文检索
GET starts/_search
{
"query": {
"match": {
"first_name": "zhang"
}
},
"aggs": {
"all_interests": {
"terms": {
"field": "interests.keyword"
}
}
}
}
#聚合+分级汇总
GET starts/_search
{
"query": {
"match": {
"first_name": "zhang"
}
},
"aggs" : {
"all_interests" : {
"terms" : { "field" : "interests.keyword" },
"aggs" : {
"avg_age" : {
"avg" : { "field" : "age" }
}
}
}
}
}