es的crud操作实战

GET

搜索请求体中常见参数解析

  1. query:定义搜索条件(如匹配哪些内容)。
  2. match: 匹配查询,用于对指定字段进行全文搜索,对指定字段进行分词后模糊匹配。
  3. _source: 用于指定搜索结果中返回的字段(过滤不需要的字段)。
  4. sort: 用于对搜索结果进行排序。
  5. size:指定从查询匹配的结果集中,返回前 N 条文档,要求N≥0,0 表示 “仅返回查询元数据(如总命中数),不返回任何文档”,若未指定size,则ES使用默认值10。
  6. term:匹配查询,单值精确匹配。
  7. terms:匹配查询,多值精确匹配。
  8. range:匹配查询,范围查询。
  9. match_phrase:短语匹配,不仅要求文档包含所有查询词项,还要求这些词项连续出现保持原始顺序
  10. from:分页参数,指定从第几条结果开始返回(起始位置,从 0 开始计数)。
  11. size:分页参数,指定从 from 位置开始,最多返回多少条结果(每页数据量)。
  12. must:布尔查询参数,强制满足,文档必须匹配所有 must 中的条件,否则直接排除,类似于and。
  13. should:布尔查询参数,非强制满足,文档可匹配部分 / 全部 should 条件,不匹配也可能被保留,类似于or。
  14. must_not:布尔查询参数,排除符合特定条件的文档,是must的反向逻辑。
  15. filter:布尔查询参数,必须满足某些条件,但这些条件不参与排序计算。
  16. highlight:在查询结果中突出显示匹配到搜索关键词的文本片段。

下面以创建的music索引为数据库演示查询操作。

1

2

排序操作

从 music 索引中找出所有发行年份为 2003 年的歌曲,仅返回歌曲名和歌手名,并按歌曲时长从长到短排序。

如果是多字段排序,则继续添加排序对象即可。

GET /music/_search
{
  "query": {
    "match": {
      "releaseyear": 2003
    }
  },
  "_source": ["name","singer"],
  "sort": [
    {
      "length": {
        "order": "desc"
      }
    }
  ]
}

查询结果

{
  "took": 2,
  "timed_out": false,
  "_shards": {
    "total": 1,
    "successful": 1,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": {
      "value": 5,
      "relation": "eq"
    },
    "max_score": null,
    "hits": [
      {
        "_index": "music",
        "_id": "Y579XJkBOIqdOt8Z4cR8",
        "_score": null,
        "_source": {
          "name": "晴天",
          "singer": "周杰伦"
        },
        "sort": [
          269
        ]
      },
      {
        "_index": "music",
        "_id": "ZJ79XJkBOIqdOt8Z4cR8",
        "_score": null,
        "_source": {
          "name": "东风破",
          "singer": "周杰伦"
        },
        "sort": [
          243
        ]
      },
      {
        "_index": "music",
        "_id": "cJ79XJkBOIqdOt8Z4cR8",
        "_score": null,
        "_source": {
          "name": "说爱你",
          "singer": "蔡依林"
        },
        "sort": [
          228
        ]
      },
      {
        "_index": "music",
        "_id": "bJ79XJkBOIqdOt8Z4cR8",
        "_score": null,
        "_source": {
          "name": "遇见",
          "singer": "孙燕姿"
        },
        "sort": [
          210
        ]
      },
      {
        "_index": "music",
        "_id": "Z579XJkBOIqdOt8Z4cR8",
        "_score": null,
        "_source": {
          "name": "十年",
          "singer": "陈奕迅"
        },
        "sort": [
          205
        ]
      }
    ]
  }
}

3

查询所有索引中的所有文档

默认返回前 10 条。

GET _search

或者

GET _search
{
  "query": {
    "match_all": {}  // match_all 表示匹配所有文档
  }
} 

查询结果

{
  "took": 2,
  "timed_out": false,
  "_shards": {
    "total": 17,
    "successful": 17,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": {
      "value": 22,
      "relation": "eq"
    },
    "max_score": 1,
    "hits": [
      {
        "_index": "emperor",
        "_id": "XJ70XJkBOIqdOt8ZPsRC",
        "_score": 1,
        "_source": {
          "name": "李世民",
          "dynasty": "唐朝",
          "age": 51
        }
      },
      {
        "_index": "emperor",
        "_id": "XZ70XJkBOIqdOt8ZP8Tr",
        "_score": 1,
        "_source": {
          "name": "刘邦",
          "dynasty": [
            "秦朝",
            "汉朝"
          ],
          "age": 61
        }
      },
      {
        "_index": "emperor",
        "_id": "X570XJkBOIqdOt8ZQMST",
        "_score": 1,
        "_source": {
          "name": "乾隆",
          "dynasty": "清朝",
          "age": 89
        }
      },
      {
        "_index": "emperor",
        "_id": "Xp70XJkBOIqdOt8ZQMQ_",
        "_score": 1,
        "_source": {
          "name": "朱元璋",
          "dynasty": [
            "元朝",
            "明朝"
          ]
        }
      },
      {
        "_index": "music",
        "_id": "YJ79XJkBOIqdOt8Z4cR8",
        "_score": 1,
        "_source": {
          "name": "黑色幽默",
          "length": 283,
          "album": "Jay",
          "lyricist": "周杰伦",
          "composer": "周杰伦",
          "singer": "周杰伦",
          "releaseyear": 2000,
          "releasedate": "2000-11-07",
          "singersex": "男歌手",
          "language": "国语"
        }
      },
      {
        "_index": "music",
        "_id": "YZ79XJkBOIqdOt8Z4cR8",
        "_score": 1,
        "_source": {
          "name": "双截棍",
          "length": 202,
          "album": "范特西",
          "lyricist": "方文山",
          "composer": "周杰伦",
          "singer": "周杰伦",
          "releaseyear": 2001,
          "releasedate": "2001-09-20",
          "singersex": "男歌手",
          "language": "国语"
        }
      },
      {
        "_index": "music",
        "_id": "Yp79XJkBOIqdOt8Z4cR8",
        "_score": 1,
        "_source": {
          "name": "爱在西元前",
          "length": 256,
          "album": "范特西",
          "lyricist": "方文山",
          "composer": "周杰伦",
          "singer": "周杰伦",
          "releaseyear": 2001,
          "releasedate": "2001-09-20",
          "singersex": "男歌手",
          "language": "国语"
        }
      },
      {
        "_index": "music",
        "_id": "Y579XJkBOIqdOt8Z4cR8",
        "_score": 1,
        "_source": {
          "name": "晴天",
          "length": 269,
          "album": "叶惠美",
          "lyricist": "周杰伦",
          "composer": "周杰伦",
          "singer": "周杰伦",
          "releaseyear": 2003,
          "releasedate": "2003-07-31",
          "singersex": "男歌手",
          "language": "国语"
        }
      },
      {
        "_index": "music",
        "_id": "ZJ79XJkBOIqdOt8Z4cR8",
        "_score": 1,
        "_source": {
          "name": "东风破",
          "length": 243,
          "album": "惠美",
          "lyricist": "方文山",
          "composer": "周杰伦",
          "singer": "周杰伦",
          "releaseyear": 2003,
          "releasedate": "2003-07-31",
          "singersex": "男歌手",
          "language": "国语"
        }
      },
      {
        "_index": "music",
        "_id": "ZZ79XJkBOIqdOt8Z4cR8",
        "_score": 1,
        "_source": {
          "name": "七里香",
          "length": 267,
          "album": "七里香",
          "lyricist": "方文山",
          "composer": "周杰伦",
          "singer": "周杰伦",
          "releaseyear": 2004,
          "releasedate": "2004-08-03",
          "singersex": "男歌手",
          "language": "国语"
        }
      }
    ]
  }
}

4

精确匹配

若需要完全匹配字段的原始值(不分词、不模糊),需使用 term(单值精确匹配)或 terms(多值精确匹配)。

适合非文本字段(如 age 数值、status 枚举)或已提前处理为 “不分词” 的文本字段(如 idnamekeyword 类型)。

  1. music 索引中,找出所有 length(歌曲时长,单位秒)精确等于 283 的歌曲
GET /music/_search
{
  "query": {
    "term": {
      "length": 283
    }
  }
}

返回结果

{
  "took": 0,
  "timed_out": false,
  "_shards": {
    "total": 1,
    "successful": 1,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": {
      "value": 2,
      "relation": "eq"
    },
    "max_score": 1,
    "hits": [
      {
        "_index": "music",
        "_id": "YJ79XJkBOIqdOt8Z4cR8",
        "_score": 1,
        "_source": {
          "name": "黑色幽默",
          "length": 283,
          "album": "Jay",
          "lyricist": "周杰伦",
          "composer": "周杰伦",
          "singer": "周杰伦",
          "releaseyear": 2000,
          "releasedate": "2000-11-07",
          "singersex": "男歌手",
          "language": "国语"
        }
      },
      {
        "_index": "music",
        "_id": "aJ79XJkBOIqdOt8Z4cR8",
        "_score": 1,
        "_source": {
          "name": "浮夸",
          "length": 283,
          "album": "U87",
          "lyricist": "黄伟文",
          "composer": "江志仁",
          "singer": "陈奕迅",
          "releaseyear": 2005,
          "releasedate": "2005-06-07",
          "singersex": "男歌手",
          "language": "粤语"
        }
      }
    ]
  }
}

5

  1. music 索引中,精确筛选出所有 singer(歌手) 字段值为 “周杰伦” 的文档

singer 字段默认是 text 类型(会分词),但自动生成的 singer.keywordkeyword 类型(完整保留原始字符串,不分词)。

GET /music/_search
{
  "query": {
    "term": {
      "singer.keyword": "周杰伦"
    }
  }
}

返回结果

{
  "took": 1,
  "timed_out": false,
  "_shards": {
    "total": 1,
    "successful": 1,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": {
      "value": 7,
      "relation": "eq"
    },
    "max_score": 0.92953587,
    "hits": [
      {
        "_index": "music",
        "_id": "YJ79XJkBOIqdOt8Z4cR8",
        "_score": 0.92953587,
        "_source": {
          "name": "黑色幽默",
          "length": 283,
          "album": "Jay",
          "lyricist": "周杰伦",
          "composer": "周杰伦",
          "singer": "周杰伦",
          "releaseyear": 2000,
          "releasedate": "2000-11-07",
          "singersex": "男歌手",
          "language": "国语"
        }
      },
      {
        "_index": "music",
        "_id": "YZ79XJkBOIqdOt8Z4cR8",
        "_score": 0.92953587,
        "_source": {
          "name": "双截棍",
          "length": 202,
          "album": "范特西",
          "lyricist": "方文山",
          "composer": "周杰伦",
          "singer": "周杰伦",
          "releaseyear": 2001,
          "releasedate": "2001-09-20",
          "singersex": "男歌手",
          "language": "国语"
        }
      },
      {
        "_index": "music",
        "_id": "Yp79XJkBOIqdOt8Z4cR8",
        "_score": 0.92953587,
        "_source": {
          "name": "爱在西元前",
          "length": 256,
          "album": "范特西",
          "lyricist": "方文山",
          "composer": "周杰伦",
          "singer": "周杰伦",
          "releaseyear": 2001,
          "releasedate": "2001-09-20",
          "singersex": "男歌手",
          "language": "国语"
        }
      },
      {
        "_index": "music",
        "_id": "Y579XJkBOIqdOt8Z4cR8",
        "_score": 0.92953587,
        "_source": {
          "name": "晴天",
          "length": 269,
          "album": "叶惠美",
          "lyricist": "周杰伦",
          "composer": "周杰伦",
          "singer": "周杰伦",
          "releaseyear": 2003,
          "releasedate": "2003-07-31",
          "singersex": "男歌手",
          "language": "国语"
        }
      },
      {
        "_index": "music",
        "_id": "ZJ79XJkBOIqdOt8Z4cR8",
        "_score": 0.92953587,
        "_source": {
          "name": "东风破",
          "length": 243,
          "album": "惠美",
          "lyricist": "方文山",
          "composer": "周杰伦",
          "singer": "周杰伦",
          "releaseyear": 2003,
          "releasedate": "2003-07-31",
          "singersex": "男歌手",
          "language": "国语"
        }
      },
      {
        "_index": "music",
        "_id": "ZZ79XJkBOIqdOt8Z4cR8",
        "_score": 0.92953587,
        "_source": {
          "name": "七里香",
          "length": 267,
          "album": "七里香",
          "lyricist": "方文山",
          "composer": "周杰伦",
          "singer": "周杰伦",
          "releaseyear": 2004,
          "releasedate": "2004-08-03",
          "singersex": "男歌手",
          "language": "国语"
        }
      },
      {
        "_index": "music",
        "_id": "Zp79XJkBOIqdOt8Z4cR8",
        "_score": 0.92953587,
        "_source": {
          "name": "青花瓷",
          "length": 239,
          "album": "我很忙",
          "lyricist": "方文山",
          "composer": "周杰伦",
          "singer": "周杰伦",
          "releaseyear": 2007,
          "releasedate": "2007-11-02",
          "singersex": "男歌手",
          "language": "国语"
        }
      }
    ]
  }
}

6

  1. 精确匹配 lyricist(作词者)字段值为 “周杰伦” 或 “方文山” 的所有文档。
GET /music/_search
{
  "query": {
    "terms": {
      "lyricist.keyword": ["周杰伦", "方文山"]
    }
  }
}

返回结果

{
  "took": 3,
  "timed_out": false,
  "_shards": {
    "total": 1,
    "successful": 1,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": {
      "value": 7,
      "relation": "eq"
    },
    "max_score": 1,
    "hits": [
      {
        "_index": "music",
        "_id": "YJ79XJkBOIqdOt8Z4cR8",
        "_score": 1,
        "_source": {
          "name": "黑色幽默",
          "length": 283,
          "album": "Jay",
          "lyricist": "周杰伦",
          "composer": "周杰伦",
          "singer": "周杰伦",
          "releaseyear": 2000,
          "releasedate": "2000-11-07",
          "singersex": "男歌手",
          "language": "国语"
        }
      },
      {
        "_index": "music",
        "_id": "YZ79XJkBOIqdOt8Z4cR8",
        "_score": 1,
        "_source": {
          "name": "双截棍",
          "length": 202,
          "album": "范特西",
          "lyricist": "方文山",
          "composer": "周杰伦",
          "singer": "周杰伦",
          "releaseyear": 2001,
          "releasedate": "2001-09-20",
          "singersex": "男歌手",
          "language": "国语"
        }
      },
      {
        "_index": "music",
        "_id": "Yp79XJkBOIqdOt8Z4cR8",
        "_score": 1,
        "_source": {
          "name": "爱在西元前",
          "length": 256,
          "album": "范特西",
          "lyricist": "方文山",
          "composer": "周杰伦",
          "singer": "周杰伦",
          "releaseyear": 2001,
          "releasedate": "2001-09-20",
          "singersex": "男歌手",
          "language": "国语"
        }
      },
      {
        "_index": "music",
        "_id": "Y579XJkBOIqdOt8Z4cR8",
        "_score": 1,
        "_source": {
          "name": "晴天",
          "length": 269,
          "album": "叶惠美",
          "lyricist": "周杰伦",
          "composer": "周杰伦",
          "singer": "周杰伦",
          "releaseyear": 2003,
          "releasedate": "2003-07-31",
          "singersex": "男歌手",
          "language": "国语"
        }
      },
      {
        "_index": "music",
        "_id": "ZJ79XJkBOIqdOt8Z4cR8",
        "_score": 1,
        "_source": {
          "name": "东风破",
          "length": 243,
          "album": "惠美",
          "lyricist": "方文山",
          "composer": "周杰伦",
          "singer": "周杰伦",
          "releaseyear": 2003,
          "releasedate": "2003-07-31",
          "singersex": "男歌手",
          "language": "国语"
        }
      },
      {
        "_index": "music",
        "_id": "ZZ79XJkBOIqdOt8Z4cR8",
        "_score": 1,
        "_source": {
          "name": "七里香",
          "length": 267,
          "album": "七里香",
          "lyricist": "方文山",
          "composer": "周杰伦",
          "singer": "周杰伦",
          "releaseyear": 2004,
          "releasedate": "2004-08-03",
          "singersex": "男歌手",
          "language": "国语"
        }
      },
      {
        "_index": "music",
        "_id": "Zp79XJkBOIqdOt8Z4cR8",
        "_score": 1,
        "_source": {
          "name": "青花瓷",
          "length": 239,
          "album": "我很忙",
          "lyricist": "方文山",
          "composer": "周杰伦",
          "singer": "周杰伦",
          "releaseyear": 2007,
          "releasedate": "2007-11-02",
          "singersex": "男歌手",
          "language": "国语"
        }
      }
    ]
  }
}

7

范围查询

若需要匹配 数值/日期 字段的某个范围,需使用 range 查询。

参数 含义 适用场景
gt 大于 数值、日期
gte 大于等于 数值、日期
lt 小于 数值、日期
lte 小于等于 数值、日期
format 日期格式,例如yyyy-MM-dd 日期字段
  1. 在 music 索引中搜索 length 在 250 到 300 秒之间的歌曲。(包含250和300)
GET /music/_search
{
  "query": {
    "range": {
      "length": {
        "gte": 250,
        "lte": 300
      }
    }
  }
}

返回数据

{
  "took": 1,
  "timed_out": false,
  "_shards": {
    "total": 1,
    "successful": 1,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": {
      "value": 8,
      "relation": "eq"
    },
    "max_score": 1,
    "hits": [
      {
        "_index": "music",
        "_id": "YJ79XJkBOIqdOt8Z4cR8",
        "_score": 1,
        "_source": {
          "name": "黑色幽默",
          "length": 283,
          "album": "Jay",
          "lyricist": "周杰伦",
          "composer": "周杰伦",
          "singer": "周杰伦",
          "releaseyear": 2000,
          "releasedate": "2000-11-07",
          "singersex": "男歌手",
          "language": "国语"
        }
      },
      {
        "_index": "music",
        "_id": "Yp79XJkBOIqdOt8Z4cR8",
        "_score": 1,
        "_source": {
          "name": "爱在西元前",
          "length": 256,
          "album": "范特西",
          "lyricist": "方文山",
          "composer": "周杰伦",
          "singer": "周杰伦",
          "releaseyear": 2001,
          "releasedate": "2001-09-20",
          "singersex": "男歌手",
          "language": "国语"
        }
      },
      {
        "_index": "music",
        "_id": "Y579XJkBOIqdOt8Z4cR8",
        "_score": 1,
        "_source": {
          "name": "晴天",
          "length": 269,
          "album": "叶惠美",
          "lyricist": "周杰伦",
          "composer": "周杰伦",
          "singer": "周杰伦",
          "releaseyear": 2003,
          "releasedate": "2003-07-31",
          "singersex": "男歌手",
          "language": "国语"
        }
      },
      {
        "_index": "music",
        "_id": "ZZ79XJkBOIqdOt8Z4cR8",
        "_score": 1,
        "_source": {
          "name": "七里香",
          "length": 267,
          "album": "七里香",
          "lyricist": "方文山",
          "composer": "周杰伦",
          "singer": "周杰伦",
          "releaseyear": 2004,
          "releasedate": "2004-08-03",
          "singersex": "男歌手",
          "language": "国语"
        }
      },
      {
        "_index": "music",
        "_id": "aJ79XJkBOIqdOt8Z4cR8",
        "_score": 1,
        "_source": {
          "name": "浮夸",
          "length": 283,
          "album": "U87",
          "lyricist": "黄伟文",
          "composer": "江志仁",
          "singer": "陈奕迅",
          "releaseyear": 2005,
          "releasedate": "2005-06-07",
          "singersex": "男歌手",
          "language": "粤语"
        }
      },
      {
        "_index": "music",
        "_id": "aZ79XJkBOIqdOt8Z4cR8",
        "_score": 1,
        "_source": {
          "name": "富士山下",
          "length": 260,
          "album": "What's Going On...?",
          "lyricist": "林夕",
          "composer": "泽日生",
          "singer": "陈奕迅",
          "releaseyear": 2006,
          "releasedate": "2006-11-23",
          "singersex": "男歌手",
          "language": "粤语"
        }
      },
      {
        "_index": "music",
        "_id": "a579XJkBOIqdOt8Z4cR8",
        "_score": 1,
        "_source": {
          "name": "江南",
          "length": 267,
          "album": "第二天堂",
          "lyricist": "李瑞洵",
          "composer": "林俊杰",
          "singer": "林俊杰",
          "releaseyear": 2004,
          "releasedate": "2004-06-04",
          "singersex": "男歌手",
          "language": "国语"
        }
      },
      {
        "_index": "music",
        "_id": "bZ79XJkBOIqdOt8Z4cR8",
        "_score": 1,
        "_source": {
          "name": "我怀念的",
          "length": 287,
          "album": "逆光",
          "lyricist": "姚若龙",
          "composer": "李偲菘",
          "singer": "孙燕姿",
          "releaseyear": 2007,
          "releasedate": "2007-03-22",
          "singersex": "女歌手",
          "language": "国语"
        }
      }
    ]
  }
}

8

  1. 在 music 索引中 搜索 releasedate 晚于 2005 年 1 月 1 日 的文档,format 用于指定日期格式
GET /music/_search
{
  "query": {
    "range": {
      "releasedate": {
        "gt": "2005-01-01",
        "format": "yyyy-MM-dd"
      }
    }
  }
}

返回数据

{
  "took": 3,
  "timed_out": false,
  "_shards": {
    "total": 1,
    "successful": 1,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": {
      "value": 6,
      "relation": "eq"
    },
    "max_score": 1,
    "hits": [
      {
        "_index": "music",
        "_id": "Zp79XJkBOIqdOt8Z4cR8",
        "_score": 1,
        "_source": {
          "name": "青花瓷",
          "length": 239,
          "album": "我很忙",
          "lyricist": "方文山",
          "composer": "周杰伦",
          "singer": "周杰伦",
          "releaseyear": 2007,
          "releasedate": "2007-11-02",
          "singersex": "男歌手",
          "language": "国语"
        }
      },
      {
        "_index": "music",
        "_id": "aJ79XJkBOIqdOt8Z4cR8",
        "_score": 1,
        "_source": {
          "name": "浮夸",
          "length": 283,
          "album": "U87",
          "lyricist": "黄伟文",
          "composer": "江志仁",
          "singer": "陈奕迅",
          "releaseyear": 2005,
          "releasedate": "2005-06-07",
          "singersex": "男歌手",
          "language": "粤语"
        }
      },
      {
        "_index": "music",
        "_id": "aZ79XJkBOIqdOt8Z4cR8",
        "_score": 1,
        "_source": {
          "name": "富士山下",
          "length": 260,
          "album": "What's Going On...?",
          "lyricist": "林夕",
          "composer": "泽日生",
          "singer": "陈奕迅",
          "releaseyear": 2006,
          "releasedate": "2006-11-23",
          "singersex": "男歌手",
          "language": "粤语"
        }
      },
      {
        "_index": "music",
        "_id": "ap79XJkBOIqdOt8Z4cR8",
        "_score": 1,
        "_source": {
          "name": "曹操",
          "length": 242,
          "album": "曹操",
          "lyricist": "林秋离",
          "composer": "林俊杰",
          "singer": "林俊杰",
          "releaseyear": 2006,
          "releasedate": "2006-02-17",
          "singersex": "男歌手",
          "language": "国语"
        }
      },
      {
        "_index": "music",
        "_id": "bZ79XJkBOIqdOt8Z4cR8",
        "_score": 1,
        "_source": {
          "name": "我怀念的",
          "length": 287,
          "album": "逆光",
          "lyricist": "姚若龙",
          "composer": "李偲菘",
          "singer": "孙燕姿",
          "releaseyear": 2007,
          "releasedate": "2007-03-22",
          "singersex": "女歌手",
          "language": "国语"
        }
      },
      {
        "_index": "music",
        "_id": "b579XJkBOIqdOt8Z4cR8",
        "_score": 1,
        "_source": {
          "name": "日不落",
          "length": 227,
          "album": "特务J",
          "lyricist": "崔惟楷",
          "composer": "Bard、Alexander Bengt Magnus、Anders Hansson",
          "singer": "蔡依林",
          "releaseyear": 2007,
          "releasedate": "2007-09-21",
          "singersex": "女歌手",
          "language": "国语"
        }
      }
    ]
  }
}

9

分页查询
  1. 匹配指定索引并分页、排序、过滤输出字段
GET /music/_search
{
  "query": {
    "match": {
      "composer": "周杰伦"
    }
  },
  "_source": ["name","singer"],
  "sort": [
    {
      "length": {
        "order": "desc"
      }
    }
  ],
  "from":0,
  "size":10
}

返回数据

{
  "took": 1,
  "timed_out": false,
  "_shards": {
    "total": 1,
    "successful": 1,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": {
      "value": 11,
      "relation": "eq"
    },
    "max_score": null,
    "hits": [
      {
        "_index": "music",
        "_id": "cZ79XJkBOIqdOt8Z4cR8",
        "_score": null,
        "_source": {
          "name": "谁明浪子心",
          "singer": "王杰"
        },
        "sort": [
          301
        ]
      },
      {
        "_index": "music",
        "_id": "YJ79XJkBOIqdOt8Z4cR8",
        "_score": null,
        "_source": {
          "name": "黑色幽默",
          "singer": "周杰伦"
        },
        "sort": [
          283
        ]
      },
      {
        "_index": "music",
        "_id": "Y579XJkBOIqdOt8Z4cR8",
        "_score": null,
        "_source": {
          "name": "晴天",
          "singer": "周杰伦"
        },
        "sort": [
          269
        ]
      },
      {
        "_index": "music",
        "_id": "ZZ79XJkBOIqdOt8Z4cR8",
        "_score": null,
        "_source": {
          "name": "七里香",
          "singer": "周杰伦"
        },
        "sort": [
          267
        ]
      },
      {
        "_index": "music",
        "_id": "a579XJkBOIqdOt8Z4cR8",
        "_score": null,
        "_source": {
          "name": "江南",
          "singer": "林俊杰"
        },
        "sort": [
          267
        ]
      },
      {
        "_index": "music",
        "_id": "Yp79XJkBOIqdOt8Z4cR8",
        "_score": null,
        "_source": {
          "name": "爱在西元前",
          "singer": "周杰伦"
        },
        "sort": [
          256
        ]
      },
      {
        "_index": "music",
        "_id": "ZJ79XJkBOIqdOt8Z4cR8",
        "_score": null,
        "_source": {
          "name": "东风破",
          "singer": "周杰伦"
        },
        "sort": [
          243
        ]
      },
      {
        "_index": "music",
        "_id": "ap79XJkBOIqdOt8Z4cR8",
        "_score": null,
        "_source": {
          "name": "曹操",
          "singer": "林俊杰"
        },
        "sort": [
          242
        ]
      },
      {
        "_index": "music",
        "_id": "Zp79XJkBOIqdOt8Z4cR8",
        "_score": null,
        "_source": {
          "name": "青花瓷",
          "singer": "周杰伦"
        },
        "sort": [
          239
        ]
      },
      {
        "_index": "music",
        "_id": "cJ79XJkBOIqdOt8Z4cR8",
        "_score": null,
        "_source": {
          "name": "说爱你",
          "singer": "蔡依林"
        },
        "sort": [
          228
        ]
      }
    ]
  }
}

10

  1. 匹配所有索引并分页
GET /_search
{
  "from": 0, 
  "size": 10,
  "query": {
    "match_all": {}
  }
}

返回数据

{
  "took": 2,
  "timed_out": false,
  "_shards": {
    "total": 17,
    "successful": 17,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": {
      "value": 22,
      "relation": "eq"
    },
    "max_score": 1,
    "hits": [
      {
        "_index": "emperor",
        "_id": "XJ70XJkBOIqdOt8ZPsRC",
        "_score": 1,
        "_source": {
          "name": "李世民",
          "dynasty": "唐朝",
          "age": 51
        }
      },
      {
        "_index": "emperor",
        "_id": "XZ70XJkBOIqdOt8ZP8Tr",
        "_score": 1,
        "_source": {
          "name": "刘邦",
          "dynasty": [
            "秦朝",
            "汉朝"
          ],
          "age": 61
        }
      },
      {
        "_index": "emperor",
        "_id": "X570XJkBOIqdOt8ZQMST",
        "_score": 1,
        "_source": {
          "name": "乾隆",
          "dynasty": "清朝",
          "age": 89
        }
      },
      {
        "_index": "emperor",
        "_id": "Xp70XJkBOIqdOt8ZQMQ_",
        "_score": 1,
        "_source": {
          "name": "朱元璋",
          "dynasty": [
            "元朝",
            "明朝"
          ]
        }
      },
      {
        "_index": "music",
        "_id": "YJ79XJkBOIqdOt8Z4cR8",
        "_score": 1,
        "_source": {
          "name": "黑色幽默",
          "length": 283,
          "album": "Jay",
          "lyricist": "周杰伦",
          "composer": "周杰伦",
          "singer": "周杰伦",
          "releaseyear": 2000,
          "releasedate": "2000-11-07",
          "singersex": "男歌手",
          "language": "国语"
        }
      },
      {
        "_index": "music",
        "_id": "YZ79XJkBOIqdOt8Z4cR8",
        "_score": 1,
        "_source": {
          "name": "双截棍",
          "length": 202,
          "album": "范特西",
          "lyricist": "方文山",
          "composer": "周杰伦",
          "singer": "周杰伦",
          "releaseyear": 2001,
          "releasedate": "2001-09-20",
          "singersex": "男歌手",
          "language": "国语"
        }
      },
      {
        "_index": "music",
        "_id": "Yp79XJkBOIqdOt8Z4cR8",
        "_score": 1,
        "_source": {
          "name": "爱在西元前",
          "length": 256,
          "album": "范特西",
          "lyricist": "方文山",
          "composer": "周杰伦",
          "singer": "周杰伦",
          "releaseyear": 2001,
          "releasedate": "2001-09-20",
          "singersex": "男歌手",
          "language": "国语"
        }
      },
      {
        "_index": "music",
        "_id": "Y579XJkBOIqdOt8Z4cR8",
        "_score": 1,
        "_source": {
          "name": "晴天",
          "length": 269,
          "album": "叶惠美",
          "lyricist": "周杰伦",
          "composer": "周杰伦",
          "singer": "周杰伦",
          "releaseyear": 2003,
          "releasedate": "2003-07-31",
          "singersex": "男歌手",
          "language": "国语"
        }
      },
      {
        "_index": "music",
        "_id": "ZJ79XJkBOIqdOt8Z4cR8",
        "_score": 1,
        "_source": {
          "name": "东风破",
          "length": 243,
          "album": "惠美",
          "lyricist": "方文山",
          "composer": "周杰伦",
          "singer": "周杰伦",
          "releaseyear": 2003,
          "releasedate": "2003-07-31",
          "singersex": "男歌手",
          "language": "国语"
        }
      },
      {
        "_index": "music",
        "_id": "ZZ79XJkBOIqdOt8Z4cR8",
        "_score": 1,
        "_source": {
          "name": "七里香",
          "length": 267,
          "album": "七里香",
          "lyricist": "方文山",
          "composer": "周杰伦",
          "singer": "周杰伦",
          "releaseyear": 2004,
          "releasedate": "2004-08-03",
          "singersex": "男歌手",
          "language": "国语"
        }
      }
    ]
  }
}

11

  1. 匹配指定索引并分页
GET /music/_search
{
  "from": 0, 
  "size": 2,
  "query": {
    "match": { "composer": "周杰伦" }
  }
}

返回数据

{
  "took": 16,
  "timed_out": false,
  "_shards": {
    "total": 1,
    "successful": 1,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": {
      "value": 11,
      "relation": "eq"
    },
    "max_score": 2.2008734,
    "hits": [
      {
        "_index": "music",
        "_id": "YJ79XJkBOIqdOt8Z4cR8",
        "_score": 2.2008734,
        "_source": {
          "name": "黑色幽默",
          "length": 283,
          "album": "Jay",
          "lyricist": "周杰伦",
          "composer": "周杰伦",
          "singer": "周杰伦",
          "releaseyear": 2000,
          "releasedate": "2000-11-07",
          "singersex": "男歌手",
          "language": "国语"
        }
      },
      {
        "_index": "music",
        "_id": "YZ79XJkBOIqdOt8Z4cR8",
        "_score": 2.2008734,
        "_source": {
          "name": "双截棍",
          "length": 202,
          "album": "范特西",
          "lyricist": "方文山",
          "composer": "周杰伦",
          "singer": "周杰伦",
          "releaseyear": 2001,
          "releasedate": "2001-09-20",
          "singersex": "男歌手",
          "language": "国语"
        }
      }
    ]
  }
}

12

布尔查询
  1. 在 music 索引中搜索既由周杰伦作词又由周杰伦作曲的歌曲,并指定了返回字段、排序方式和分页参数。
GET /music/_search
{
  "query": {
    "bool":{
      "must":[
        {
          "match": {
            "lyricist": "周杰伦"
          }
        },
        {
          "match": {
            "composer": "周杰伦"
          }
        }
      ]
    }
  },
  "_source": ["name","singer","lyricist","composer"],
  "sort": [
    {
      "length": {
        "order": "desc"
      }
    }
  ],
  "from":0,
  "size":10
}

返回数据

{
  "took": 1,
  "timed_out": false,
  "_shards": {
    "total": 1,
    "successful": 1,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": {
      "value": 2,
      "relation": "eq"
    },
    "max_score": null,
    "hits": [
      {
        "_index": "music",
        "_id": "YJ79XJkBOIqdOt8Z4cR8",
        "_score": null,
        "_source": {
          "name": "黑色幽默",
          "lyricist": "周杰伦",
          "composer": "周杰伦",
          "singer": "周杰伦"
        },
        "sort": [
          283
        ]
      },
      {
        "_index": "music",
        "_id": "Y579XJkBOIqdOt8Z4cR8",
        "_score": null,
        "_source": {
          "name": "晴天",
          "lyricist": "周杰伦",
          "composer": "周杰伦",
          "singer": "周杰伦"
        },
        "sort": [
          269
        ]
      }
    ]
  }
}

13

  1. 在 music 索引中搜索周杰伦作词 或者 周杰伦作曲的歌曲,并指定了返回字段、排序方式和分页参数。
GET /music/_search
{
  "query": {
    "bool":{
      "should":[
        {
          "match": {
            "lyricist": "周杰伦"
          }
        },
        {
          "match": {
            "composer": "周杰伦"
          }
        }
      ]
    }
  },
  "_source": ["name","singer","lyricist","composer"],
  "sort": [
    {
      "length": {
        "order": "desc"
      }
    }
  ],
  "from":0,
  "size":10
}

返回数据

{
  "took": 2,
  "timed_out": false,
  "_shards": {
    "total": 1,
    "successful": 1,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": {
      "value": 11,
      "relation": "eq"
    },
    "max_score": null,
    "hits": [
      {
        "_index": "music",
        "_id": "cZ79XJkBOIqdOt8Z4cR8",
        "_score": null,
        "_source": {
          "name": "谁明浪子心",
          "lyricist": "潘源良",
          "composer": "王杰",
          "singer": "王杰"
        },
        "sort": [
          301
        ]
      },
      {
        "_index": "music",
        "_id": "YJ79XJkBOIqdOt8Z4cR8",
        "_score": null,
        "_source": {
          "name": "黑色幽默",
          "lyricist": "周杰伦",
          "composer": "周杰伦",
          "singer": "周杰伦"
        },
        "sort": [
          283
        ]
      },
      {
        "_index": "music",
        "_id": "Y579XJkBOIqdOt8Z4cR8",
        "_score": null,
        "_source": {
          "name": "晴天",
          "lyricist": "周杰伦",
          "composer": "周杰伦",
          "singer": "周杰伦"
        },
        "sort": [
          269
        ]
      },
      {
        "_index": "music",
        "_id": "ZZ79XJkBOIqdOt8Z4cR8",
        "_score": null,
        "_source": {
          "name": "七里香",
          "lyricist": "方文山",
          "composer": "周杰伦",
          "singer": "周杰伦"
        },
        "sort": [
          267
        ]
      },
      {
        "_index": "music",
        "_id": "a579XJkBOIqdOt8Z4cR8",
        "_score": null,
        "_source": {
          "name": "江南",
          "lyricist": "李瑞洵",
          "composer": "林俊杰",
          "singer": "林俊杰"
        },
        "sort": [
          267
        ]
      },
      {
        "_index": "music",
        "_id": "Yp79XJkBOIqdOt8Z4cR8",
        "_score": null,
        "_source": {
          "name": "爱在西元前",
          "lyricist": "方文山",
          "composer": "周杰伦",
          "singer": "周杰伦"
        },
        "sort": [
          256
        ]
      },
      {
        "_index": "music",
        "_id": "ZJ79XJkBOIqdOt8Z4cR8",
        "_score": null,
        "_source": {
          "name": "东风破",
          "lyricist": "方文山",
          "composer": "周杰伦",
          "singer": "周杰伦"
        },
        "sort": [
          243
        ]
      },
      {
        "_index": "music",
        "_id": "ap79XJkBOIqdOt8Z4cR8",
        "_score": null,
        "_source": {
          "name": "曹操",
          "lyricist": "林秋离",
          "composer": "林俊杰",
          "singer": "林俊杰"
        },
        "sort": [
          242
        ]
      },
      {
        "_index": "music",
        "_id": "Zp79XJkBOIqdOt8Z4cR8",
        "_score": null,
        "_source": {
          "name": "青花瓷",
          "lyricist": "方文山",
          "composer": "周杰伦",
          "singer": "周杰伦"
        },
        "sort": [
          239
        ]
      },
      {
        "_index": "music",
        "_id": "cJ79XJkBOIqdOt8Z4cR8",
        "_score": null,
        "_source": {
          "name": "说爱你",
          "lyricist": "天天",
          "composer": "周杰伦",
          "singer": "蔡依林"
        },
        "sort": [
          228
        ]
      }
    ]
  }
}

14

  1. 在 music 索引中搜索非男歌手演唱的歌曲,并指定了返回字段、排序方式和分页参数。

如果must_not包含多个条件,则“任意满足一个即被排除”。

GET /music/_search
{
  "query": {
    "bool":{
      "must_not":[
        {
          "term": {
            "singersex": "男歌手"
          }
        }
      ]
    }
  },
  "_source": ["name","singer"],
  "sort": [
    {
      "length": {
        "order": "desc"
      }
    }
  ],
  "from":0,
  "size":10
}

返回数据

{
  "took": 1,
  "timed_out": false,
  "_shards": {
    "total": 1,
    "successful": 1,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": {
      "value": 18,
      "relation": "eq"
    },
    "max_score": null,
    "hits": [
      {
        "_index": "music",
        "_id": "cZ79XJkBOIqdOt8Z4cR8",
        "_score": null,
        "_source": {
          "name": "谁明浪子心",
          "singer": "王杰"
        },
        "sort": [
          301
        ]
      },
      {
        "_index": "music",
        "_id": "bZ79XJkBOIqdOt8Z4cR8",
        "_score": null,
        "_source": {
          "name": "我怀念的",
          "singer": "孙燕姿"
        },
        "sort": [
          287
        ]
      },
      {
        "_index": "music",
        "_id": "YJ79XJkBOIqdOt8Z4cR8",
        "_score": null,
        "_source": {
          "name": "黑色幽默",
          "singer": "周杰伦"
        },
        "sort": [
          283
        ]
      },
      {
        "_index": "music",
        "_id": "aJ79XJkBOIqdOt8Z4cR8",
        "_score": null,
        "_source": {
          "name": "浮夸",
          "singer": "陈奕迅"
        },
        "sort": [
          283
        ]
      },
      {
        "_index": "music",
        "_id": "Y579XJkBOIqdOt8Z4cR8",
        "_score": null,
        "_source": {
          "name": "晴天",
          "singer": "周杰伦"
        },
        "sort": [
          269
        ]
      },
      {
        "_index": "music",
        "_id": "ZZ79XJkBOIqdOt8Z4cR8",
        "_score": null,
        "_source": {
          "name": "七里香",
          "singer": "周杰伦"
        },
        "sort": [
          267
        ]
      },
      {
        "_index": "music",
        "_id": "a579XJkBOIqdOt8Z4cR8",
        "_score": null,
        "_source": {
          "name": "江南",
          "singer": "林俊杰"
        },
        "sort": [
          267
        ]
      },
      {
        "_index": "music",
        "_id": "aZ79XJkBOIqdOt8Z4cR8",
        "_score": null,
        "_source": {
          "name": "富士山下",
          "singer": "陈奕迅"
        },
        "sort": [
          260
        ]
      },
      {
        "_index": "music",
        "_id": "Yp79XJkBOIqdOt8Z4cR8",
        "_score": null,
        "_source": {
          "name": "爱在西元前",
          "singer": "周杰伦"
        },
        "sort": [
          256
        ]
      },
      {
        "_index": "music",
        "_id": "ZJ79XJkBOIqdOt8Z4cR8",
        "_score": null,
        "_source": {
          "name": "东风破",
          "singer": "周杰伦"
        },
        "sort": [
          243
        ]
      }
    ]
  }
}

15

  1. 过滤操作,在 music 索引中搜索 歌曲语言为 “国语”、歌曲时长在 250 到 300 秒之间的歌曲。

gt:大于

gte:大于等于

lt:小于

lte:小于等于

GET /music/_search
{
  "query": {
    "bool":{
      "must":[
        {
          "match": {
            "language": "国语"
          }
        }
      ],
      "filter":{
        "range":{
          "length":{
            "gte":250,
            "lte":300
          }
        }
      }
    }
  }
}

返回数据

{
  "took": 7,
  "timed_out": false,
  "_shards": {
    "total": 1,
    "successful": 1,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": {
      "value": 8,
      "relation": "eq"
    },
    "max_score": 0.23026721,
    "hits": [
      {
        "_index": "music",
        "_id": "YJ79XJkBOIqdOt8Z4cR8",
        "_score": 0.23026721,
        "_source": {
          "name": "黑色幽默",
          "length": 283,
          "album": "Jay",
          "lyricist": "周杰伦",
          "composer": "周杰伦",
          "singer": "周杰伦",
          "releaseyear": 2000,
          "releasedate": "2000-11-07",
          "singersex": "男歌手",
          "language": "国语"
        }
      },
      {
        "_index": "music",
        "_id": "Yp79XJkBOIqdOt8Z4cR8",
        "_score": 0.23026721,
        "_source": {
          "name": "爱在西元前",
          "length": 256,
          "album": "范特西",
          "lyricist": "方文山",
          "composer": "周杰伦",
          "singer": "周杰伦",
          "releaseyear": 2001,
          "releasedate": "2001-09-20",
          "singersex": "男歌手",
          "language": "国语"
        }
      },
      {
        "_index": "music",
        "_id": "Y579XJkBOIqdOt8Z4cR8",
        "_score": 0.23026721,
        "_source": {
          "name": "晴天",
          "length": 269,
          "album": "叶惠美",
          "lyricist": "周杰伦",
          "composer": "周杰伦",
          "singer": "周杰伦",
          "releaseyear": 2003,
          "releasedate": "2003-07-31",
          "singersex": "男歌手",
          "language": "国语"
        }
      },
      {
        "_index": "music",
        "_id": "ZZ79XJkBOIqdOt8Z4cR8",
        "_score": 0.23026721,
        "_source": {
          "name": "七里香",
          "length": 267,
          "album": "七里香",
          "lyricist": "方文山",
          "composer": "周杰伦",
          "singer": "周杰伦",
          "releaseyear": 2004,
          "releasedate": "2004-08-03",
          "singersex": "男歌手",
          "language": "国语"
        }
      },
      {
        "_index": "music",
        "_id": "a579XJkBOIqdOt8Z4cR8",
        "_score": 0.23026721,
        "_source": {
          "name": "江南",
          "length": 267,
          "album": "第二天堂",
          "lyricist": "李瑞洵",
          "composer": "林俊杰",
          "singer": "林俊杰",
          "releaseyear": 2004,
          "releasedate": "2004-06-04",
          "singersex": "男歌手",
          "language": "国语"
        }
      },
      {
        "_index": "music",
        "_id": "bZ79XJkBOIqdOt8Z4cR8",
        "_score": 0.23026721,
        "_source": {
          "name": "我怀念的",
          "length": 287,
          "album": "逆光",
          "lyricist": "姚若龙",
          "composer": "李偲菘",
          "singer": "孙燕姿",
          "releaseyear": 2007,
          "releasedate": "2007-03-22",
          "singersex": "女歌手",
          "language": "国语"
        }
      },
      {
        "_index": "music",
        "_id": "aJ79XJkBOIqdOt8Z4cR8",
        "_score": 0.026668247,
        "_source": {
          "name": "浮夸",
          "length": 283,
          "album": "U87",
          "lyricist": "黄伟文",
          "composer": "江志仁",
          "singer": "陈奕迅",
          "releaseyear": 2005,
          "releasedate": "2005-06-07",
          "singersex": "男歌手",
          "language": "粤语"
        }
      },
      {
        "_index": "music",
        "_id": "aZ79XJkBOIqdOt8Z4cR8",
        "_score": 0.026668247,
        "_source": {
          "name": "富士山下",
          "length": 260,
          "album": "What's Going On...?",
          "lyricist": "林夕",
          "composer": "泽日生",
          "singer": "陈奕迅",
          "releaseyear": 2006,
          "releasedate": "2006-11-23",
          "singersex": "男歌手",
          "language": "粤语"
        }
      }
    ]
  }
}

16

多条件查询

在 music 索引中搜索 lyricist 包含 “方文山” 或 “林夕” 的歌曲。

GET /music/_search
{
  "query": {
    "match":{"lyricist":"方文山 林夕"}
  }
}

返回数据

{
  "took": 1,
  "timed_out": false,
  "_shards": {
    "total": 1,
    "successful": 1,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": {
      "value": 9,
      "relation": "eq"
    },
    "max_score": 4.228615,
    "hits": [
      {
        "_index": "music",
        "_id": "Z579XJkBOIqdOt8Z4cR8",
        "_score": 4.228615,
        "_source": {
          "name": "十年",
          "length": 205,
          "album": "黑・白・灰",
          "lyricist": "林夕",
          "composer": "陈小霞",
          "singer": "陈奕迅",
          "releaseyear": 2003,
          "releasedate": "2003-04-15",
          "singersex": "男歌手",
          "language": "国语"
        }
      },
      {
        "_index": "music",
        "_id": "aZ79XJkBOIqdOt8Z4cR8",
        "_score": 4.228615,
        "_source": {
          "name": "富士山下",
          "length": 260,
          "album": "What's Going On...?",
          "lyricist": "林夕",
          "composer": "泽日生",
          "singer": "陈奕迅",
          "releaseyear": 2006,
          "releasedate": "2006-11-23",
          "singersex": "男歌手",
          "language": "粤语"
        }
      },
      {
        "_index": "music",
        "_id": "YZ79XJkBOIqdOt8Z4cR8",
        "_score": 3.4685504,
        "_source": {
          "name": "双截棍",
          "length": 202,
          "album": "范特西",
          "lyricist": "方文山",
          "composer": "周杰伦",
          "singer": "周杰伦",
          "releaseyear": 2001,
          "releasedate": "2001-09-20",
          "singersex": "男歌手",
          "language": "国语"
        }
      },
      {
        "_index": "music",
        "_id": "Yp79XJkBOIqdOt8Z4cR8",
        "_score": 3.4685504,
        "_source": {
          "name": "爱在西元前",
          "length": 256,
          "album": "范特西",
          "lyricist": "方文山",
          "composer": "周杰伦",
          "singer": "周杰伦",
          "releaseyear": 2001,
          "releasedate": "2001-09-20",
          "singersex": "男歌手",
          "language": "国语"
        }
      },
      {
        "_index": "music",
        "_id": "ZJ79XJkBOIqdOt8Z4cR8",
        "_score": 3.4685504,
        "_source": {
          "name": "东风破",
          "length": 243,
          "album": "惠美",
          "lyricist": "方文山",
          "composer": "周杰伦",
          "singer": "周杰伦",
          "releaseyear": 2003,
          "releasedate": "2003-07-31",
          "singersex": "男歌手",
          "language": "国语"
        }
      },
      {
        "_index": "music",
        "_id": "ZZ79XJkBOIqdOt8Z4cR8",
        "_score": 3.4685504,
        "_source": {
          "name": "七里香",
          "length": 267,
          "album": "七里香",
          "lyricist": "方文山",
          "composer": "周杰伦",
          "singer": "周杰伦",
          "releaseyear": 2004,
          "releasedate": "2004-08-03",
          "singersex": "男歌手",
          "language": "国语"
        }
      },
      {
        "_index": "music",
        "_id": "Zp79XJkBOIqdOt8Z4cR8",
        "_score": 3.4685504,
        "_source": {
          "name": "青花瓷",
          "length": 239,
          "album": "我很忙",
          "lyricist": "方文山",
          "composer": "周杰伦",
          "singer": "周杰伦",
          "releaseyear": 2007,
          "releasedate": "2007-11-02",
          "singersex": "男歌手",
          "language": "国语"
        }
      },
      {
        "_index": "music",
        "_id": "ap79XJkBOIqdOt8Z4cR8",
        "_score": 1.6519237,
        "_source": {
          "name": "曹操",
          "length": 242,
          "album": "曹操",
          "lyricist": "林秋离",
          "composer": "林俊杰",
          "singer": "林俊杰",
          "releaseyear": 2006,
          "releasedate": "2006-02-17",
          "singersex": "男歌手",
          "language": "国语"
        }
      },
      {
        "_index": "music",
        "_id": "aJ79XJkBOIqdOt8Z4cR8",
        "_score": 1.0474312,
        "_source": {
          "name": "浮夸",
          "length": 283,
          "album": "U87",
          "lyricist": "黄伟文",
          "composer": "江志仁",
          "singer": "陈奕迅",
          "releaseyear": 2005,
          "releasedate": "2005-06-07",
          "singersex": "男歌手",
          "language": "粤语"
        }
      }
    ]
  }
}

17

高亮查询
  1. 默认高亮查询
GET /music/_search
{
  "query": {
    "match":{"album":"The Moment"}
  },
  "highlight":{
    "fields":{
      "album":{}
    }
  }
}

18

  1. 自定义高亮查询
GET /music/_search
{
  "query": {
   "match":{"album":"The Moment"}
  },
  "highlight":{
    "pre_tags":"<p class='gaoliang'>",
    "post_tags":"</p>",
    "fields":{
      "album":{}
    }
  }
}

19

  1. 多条件多字段自定义高亮查询
GET /music/_search
{
  "query": {
    "bool": {
      "must": [
        // 多条件1:发行年份为2003(数值类型,用于筛选,不参与高亮)
        { "term": { "releaseyear": 2003 } },
        // 多条件2:歌曲语言为国语(text类型,参与高亮,需匹配字段内容)
        { "match": { "language": "国语" } },
        // 多条件3:可选-增加歌手名/歌名的匹配(确保高亮字段有关键词重叠)
        { "match": { "singer": "周杰伦" } } 
      ]
    }
  },
  "highlight": {
    // 1. 自定义高亮标签(替换默认的<em>)
    "pre_tags": "<p class='gaoliang'>",
    "post_tags": "</p>",
    // 2. 配置需要高亮的多字段(均为text类型)
    "fields": {
      "name": {},          // 高亮:歌曲名
      "singer": {},        // 高亮:歌手名
      "lyricist": {},      // 高亮:作词者
      "language": {}       // 高亮:歌曲语言(可选,因查询条件包含“国语”)
    }
  }
}

返回数据

{
  "took": 5,
  "timed_out": false,
  "_shards": {
    "total": 1,
    "successful": 1,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": {
      "value": 2,
      "relation": "eq"
    },
    "max_score": 3.6636205,
    "hits": [
      {
        "_index": "music",
        "_id": "Y579XJkBOIqdOt8Z4cR8",
        "_score": 3.6636205,
        "_source": {
          "name": "晴天",
          "length": 269,
          "album": "叶惠美",
          "lyricist": "周杰伦",
          "composer": "周杰伦",
          "singer": "周杰伦",
          "releaseyear": 2003,
          "releasedate": "2003-07-31",
          "singersex": "男歌手",
          "language": "国语"
        },
        "highlight": {
          "singer": [
            "<p class='gaoliang'>周</p><p class='gaoliang'>杰</p><p class='gaoliang'>伦</p>"
          ],
          "language": [
            "<p class='gaoliang'>国</p><p class='gaoliang'>语</p>"
          ]
        }
      },
      {
        "_index": "music",
        "_id": "ZJ79XJkBOIqdOt8Z4cR8",
        "_score": 3.6636205,
        "_source": {
          "name": "东风破",
          "length": 243,
          "album": "惠美",
          "lyricist": "方文山",
          "composer": "周杰伦",
          "singer": "周杰伦",
          "releaseyear": 2003,
          "releasedate": "2003-07-31",
          "singersex": "男歌手",
          "language": "国语"
        },
        "highlight": {
          "singer": [
            "<p class='gaoliang'>周</p><p class='gaoliang'>杰</p><p class='gaoliang'>伦</p>"
          ],
          "language": [
            "<p class='gaoliang'>国</p><p class='gaoliang'>语</p>"
          ]
        }
      }
    ]
  }
}
聚合查询
  1. 按 language 字段进行分组统计,统计每个 language 分组下的文档数量,

其中 lang 是聚合名称,可以自定义,但要符合规范;terms表示按什么字段进行分组,field指定具体的分组字段。

GET /music/_search
{
  "size":0,
  "aggs":{
    "lang":{
      "terms":{
        "field":"language.keyword"
      }
    }
  }
}

20

  1. 嵌套聚合查询,先按 language 字段分组统计,然后计算每个分组中 length 字段的平均值。
GET /music/_search
{
  "size":0,
  "aggs":{
    "lang":{
      "terms":{
        "field":"language.keyword"
      },
      "aggs":{
        "length_avg":{
          "avg":{
            "field":"length"
          }
        }
      }
    }
  }
}

21

  1. 对 music 索引的 _doc 类型文档进行多维度统计分析,先按 language 字段进行分组,然后计算每个分组中 length 字段的平均值、最大值、最小值、总和。
GET /music/_search
{
  "size":0,
  "aggs":{
    "lang":{
      "terms":{
        "field":"language.keyword"
      },
      "aggs":{
        "length_avg":{
          "avg":{
            "field":"length"
          }
        },
         "length_max":{
          "max":{
            "field":"length"
          }
        },
         "length_min":{
          "min":{
            "field":"length"
          }
        },
         "length_sum":{
          "sum":{
            "field":"length"
          }
        }
      }
    }
  }
}

返回数据

{
  "took": 13,
  "timed_out": false,
  "_shards": {
    "total": 1,
    "successful": 1,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": {
      "value": 18,
      "relation": "eq"
    },
    "max_score": null,
    "hits": []
  },
  "aggregations": {
    "lang": {
      "doc_count_error_upper_bound": 0,
      "sum_other_doc_count": 0,
      "buckets": [
        {
          "key": "国语",
          "doc_count": 15,
          "length_avg": {
            "value": 242.6
          },
          "length_max": {
            "value": 287
          },
          "length_min": {
            "value": 202
          },
          "length_sum": {
            "value": 3639
          }
        },
        {
          "key": "粤语",
          "doc_count": 3,
          "length_avg": {
            "value": 281.3333333333333
          },
          "length_max": {
            "value": 301
          },
          "length_min": {
            "value": 260
          },
          "length_sum": {
            "value": 844
          }
        }
      ]
    }
  }
}

22

  1. 使用直方图(histogram)聚合对 length 进行区间分组,并计算每个区间内的平均时长。
GET /music/_search
{
  "size":0,
  "aggs":{
    "length_range":{
      "histogram":{
        "field":"length",
        "interval":30
      },
      "aggs":{
        "length_avg":{
          "avg":{
            "field":"length"
          }
        }
      }
    }
  }
}

返回数据

{
  "took": 2,
  "timed_out": false,
  "_shards": {
    "total": 1,
    "successful": 1,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": {
      "value": 18,
      "relation": "eq"
    },
    "max_score": null,
    "hits": []
  },
  "aggregations": {
    "length_range": {
      "buckets": [
        {
          "key": 180,
          "doc_count": 2,
          "length_avg": {
            "value": 203.5
          }
        },
        {
          "key": 210,
          "doc_count": 5,
          "length_avg": {
            "value": 223.6
          }
        },
        {
          "key": 240,
          "doc_count": 7,
          "length_avg": {
            "value": 257.7142857142857
          }
        },
        {
          "key": 270,
          "doc_count": 3,
          "length_avg": {
            "value": 284.3333333333333
          }
        },
        {
          "key": 300,
          "doc_count": 1,
          "length_avg": {
            "value": 301
          }
        }
      ]
    }
  }
}

23

  1. 使用了 date_histogram 聚合,用于按月份统计 music 索引中歌曲的发行时间分布。
GET /music/_search
{
  "size":0,
  "aggs":{
    "sales":{
      "date_histogram":{
        "field":"releaseDate", //按 releaseDate(发行日期)字段进行时间分组
        "calendar_interval":"month",  //按月份间隔分组
        "format":"yyyy-MM-dd", //指定日期显示格式
        "min_doc_count":0,  //即使某个月份没有数据,也会显示该月份(默认只显示有数据的区间)
        "extended_bounds":{  //定义了统计的时间范围(包含边界)
          "min":"2002-01-01",
          "max":"2007-01-01"
        }
      }
    }
  }
}

返回数据

{
  "took": 6,
  "timed_out": false,
  "_shards": {
    "total": 1,
    "successful": 1,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": {
      "value": 18,
      "relation": "eq"
    },
    "max_score": null,
    "hits": []
  },
  "aggregations": {
    "sales": {
      "buckets": [
        {
          "key_as_string": "2002-01-01",
          "key": 1009843200000,
          "doc_count": 0
        },
        {
          "key_as_string": "2002-02-01",
          "key": 1012521600000,
          "doc_count": 0
        },
        {
          "key_as_string": "2002-03-01",
          "key": 1014940800000,
          "doc_count": 0
        },
        {
          "key_as_string": "2002-04-01",
          "key": 1017619200000,
          "doc_count": 0
        },
        {
          "key_as_string": "2002-05-01",
          "key": 1020211200000,
          "doc_count": 0
        },
        {
          "key_as_string": "2002-06-01",
          "key": 1022889600000,
          "doc_count": 0
        },
        {
          "key_as_string": "2002-07-01",
          "key": 1025481600000,
          "doc_count": 0
        },
        {
          "key_as_string": "2002-08-01",
          "key": 1028160000000,
          "doc_count": 0
        },
        {
          "key_as_string": "2002-09-01",
          "key": 1030838400000,
          "doc_count": 0
        },
        {
          "key_as_string": "2002-10-01",
          "key": 1033430400000,
          "doc_count": 0
        },
        {
          "key_as_string": "2002-11-01",
          "key": 1036108800000,
          "doc_count": 0
        },
        {
          "key_as_string": "2002-12-01",
          "key": 1038700800000,
          "doc_count": 0
        },
        {
          "key_as_string": "2003-01-01",
          "key": 1041379200000,
          "doc_count": 0
        },
        {
          "key_as_string": "2003-02-01",
          "key": 1044057600000,
          "doc_count": 0
        },
        {
          "key_as_string": "2003-03-01",
          "key": 1046476800000,
          "doc_count": 0
        },
        {
          "key_as_string": "2003-04-01",
          "key": 1049155200000,
          "doc_count": 0
        },
        {
          "key_as_string": "2003-05-01",
          "key": 1051747200000,
          "doc_count": 0
        },
        {
          "key_as_string": "2003-06-01",
          "key": 1054425600000,
          "doc_count": 0
        },
        {
          "key_as_string": "2003-07-01",
          "key": 1057017600000,
          "doc_count": 0
        },
        {
          "key_as_string": "2003-08-01",
          "key": 1059696000000,
          "doc_count": 0
        },
        {
          "key_as_string": "2003-09-01",
          "key": 1062374400000,
          "doc_count": 0
        },
        {
          "key_as_string": "2003-10-01",
          "key": 1064966400000,
          "doc_count": 0
        },
        {
          "key_as_string": "2003-11-01",
          "key": 1067644800000,
          "doc_count": 0
        },
        {
          "key_as_string": "2003-12-01",
          "key": 1070236800000,
          "doc_count": 0
        },
        {
          "key_as_string": "2004-01-01",
          "key": 1072915200000,
          "doc_count": 0
        },
        {
          "key_as_string": "2004-02-01",
          "key": 1075593600000,
          "doc_count": 0
        },
        {
          "key_as_string": "2004-03-01",
          "key": 1078099200000,
          "doc_count": 0
        },
        {
          "key_as_string": "2004-04-01",
          "key": 1080777600000,
          "doc_count": 0
        },
        {
          "key_as_string": "2004-05-01",
          "key": 1083369600000,
          "doc_count": 0
        },
        {
          "key_as_string": "2004-06-01",
          "key": 1086048000000,
          "doc_count": 0
        },
        {
          "key_as_string": "2004-07-01",
          "key": 1088640000000,
          "doc_count": 0
        },
        {
          "key_as_string": "2004-08-01",
          "key": 1091318400000,
          "doc_count": 0
        },
        {
          "key_as_string": "2004-09-01",
          "key": 1093996800000,
          "doc_count": 0
        },
        {
          "key_as_string": "2004-10-01",
          "key": 1096588800000,
          "doc_count": 0
        },
        {
          "key_as_string": "2004-11-01",
          "key": 1099267200000,
          "doc_count": 0
        },
        {
          "key_as_string": "2004-12-01",
          "key": 1101859200000,
          "doc_count": 0
        },
        {
          "key_as_string": "2005-01-01",
          "key": 1104537600000,
          "doc_count": 0
        },
        {
          "key_as_string": "2005-02-01",
          "key": 1107216000000,
          "doc_count": 0
        },
        {
          "key_as_string": "2005-03-01",
          "key": 1109635200000,
          "doc_count": 0
        },
        {
          "key_as_string": "2005-04-01",
          "key": 1112313600000,
          "doc_count": 0
        },
        {
          "key_as_string": "2005-05-01",
          "key": 1114905600000,
          "doc_count": 0
        },
        {
          "key_as_string": "2005-06-01",
          "key": 1117584000000,
          "doc_count": 0
        },
        {
          "key_as_string": "2005-07-01",
          "key": 1120176000000,
          "doc_count": 0
        },
        {
          "key_as_string": "2005-08-01",
          "key": 1122854400000,
          "doc_count": 0
        },
        {
          "key_as_string": "2005-09-01",
          "key": 1125532800000,
          "doc_count": 0
        },
        {
          "key_as_string": "2005-10-01",
          "key": 1128124800000,
          "doc_count": 0
        },
        {
          "key_as_string": "2005-11-01",
          "key": 1130803200000,
          "doc_count": 0
        },
        {
          "key_as_string": "2005-12-01",
          "key": 1133395200000,
          "doc_count": 0
        },
        {
          "key_as_string": "2006-01-01",
          "key": 1136073600000,
          "doc_count": 0
        },
        {
          "key_as_string": "2006-02-01",
          "key": 1138752000000,
          "doc_count": 0
        },
        {
          "key_as_string": "2006-03-01",
          "key": 1141171200000,
          "doc_count": 0
        },
        {
          "key_as_string": "2006-04-01",
          "key": 1143849600000,
          "doc_count": 0
        },
        {
          "key_as_string": "2006-05-01",
          "key": 1146441600000,
          "doc_count": 0
        },
        {
          "key_as_string": "2006-06-01",
          "key": 1149120000000,
          "doc_count": 0
        },
        {
          "key_as_string": "2006-07-01",
          "key": 1151712000000,
          "doc_count": 0
        },
        {
          "key_as_string": "2006-08-01",
          "key": 1154390400000,
          "doc_count": 0
        },
        {
          "key_as_string": "2006-09-01",
          "key": 1157068800000,
          "doc_count": 0
        },
        {
          "key_as_string": "2006-10-01",
          "key": 1159660800000,
          "doc_count": 0
        },
        {
          "key_as_string": "2006-11-01",
          "key": 1162339200000,
          "doc_count": 0
        },
        {
          "key_as_string": "2006-12-01",
          "key": 1164931200000,
          "doc_count": 0
        },
        {
          "key_as_string": "2007-01-01",
          "key": 1167609600000,
          "doc_count": 0
        }
      ]
    }
  }
}

24

  1. 先筛选出 language 为 "粤语" 的文档,再对筛选结果按 language 进行分组统计。
GET /music/_search
{
  "size":0,
  "query":{
    "match":{
      "language":"粤语"
    }
  },
  "aggs":{
    "lang":{
      "terms":{
        "field":"language.keyword"
      }
  }
  }
}

25

  1. 先按 language 字段分组,对每个 language 分组计算平均时长,每个 language 的平均时长 降序 排列分组结果。
GET /music/_search
{
  "size": 0,
  "aggs": {
    "group_by_language": {
      "terms": {
        "field": "language.keyword",
        "order": {
          "length_avg": "desc"
        }
      },
      "aggs": {
        "length_avg": {
          "avg": {
            "field": "length"
          }
        }
      }
    }
  }
}

26

SQL查询

ES同样支持通过SQL的方式进行查询,响应数据如下图所示。

31

在使用SQL查询时,需要注意一种情况,如果如果索引的某个字段是一个数组类型,那么在查询的时候不能使用*,否则会报错,因为Es SQL 不支持直接查询数据类型的字段,如下所示,dynasty是一个数组字段,如果直接使用SELECT * 便会报右边窗口的错误。

32

33

此时可以通过指定查询字段的方式查询,但查询的字段不能包括数组字段,如果确实需要数组字段的数据,就不要用SQL的方式,改为用ES 原生的 _search API。

34

35

  1. 常用格式

json格式:

POST /_sql?format=json
{
    "query":"SELECT * from music"
}

返回数据:

{
  "columns": [
    {
      "name": "album",
      "type": "text"
    },
    {
      "name": "composer",
      "type": "text"
    },
    {
      "name": "language",
      "type": "text"
    },
    {
      "name": "length",
      "type": "long"
    },
    {
      "name": "lyricist",
      "type": "text"
    },
    {
      "name": "name",
      "type": "text"
    },
    {
      "name": "releasedate",
      "type": "datetime"
    },
    {
      "name": "releaseyear",
      "type": "long"
    },
    {
      "name": "singer",
      "type": "text"
    },
    {
      "name": "singersex",
      "type": "text"
    }
  ],
  "rows": [
    [
      "Jay",
      "周杰伦",
      "国语",
      283,
      "周杰伦",
      "黑色幽默",
      "2000-11-07T00:00:00.000Z",
      2000,
      "周杰伦",
      "男歌手"
    ],
    [
      "范特西",
      "周杰伦",
      "国语",
      202,
      "方文山",
      "双截棍",
      "2001-09-20T00:00:00.000Z",
      2001,
      "周杰伦",
      "男歌手"
    ],
    [
      "范特西",
      "周杰伦",
      "国语",
      256,
      "方文山",
      "爱在西元前",
      "2001-09-20T00:00:00.000Z",
      2001,
      "周杰伦",
      "男歌手"
    ],
    [
      "叶惠美",
      "周杰伦",
      "国语",
      269,
      "周杰伦",
      "晴天",
      "2003-07-31T00:00:00.000Z",
      2003,
      "周杰伦",
      "男歌手"
    ],
    [
      "惠美",
      "周杰伦",
      "国语",
      243,
      "方文山",
      "东风破",
      "2003-07-31T00:00:00.000Z",
      2003,
      "周杰伦",
      "男歌手"
    ],
    [
      "七里香",
      "周杰伦",
      "国语",
      267,
      "方文山",
      "七里香",
      "2004-08-03T00:00:00.000Z",
      2004,
      "周杰伦",
      "男歌手"
    ],
    [
      "我很忙",
      "周杰伦",
      "国语",
      239,
      "方文山",
      "青花瓷",
      "2007-11-02T00:00:00.000Z",
      2007,
      "周杰伦",
      "男歌手"
    ],
    [
      "黑・白・灰",
      "陈小霞",
      "国语",
      205,
      "林夕",
      "十年",
      "2003-04-15T00:00:00.000Z",
      2003,
      "陈奕迅",
      "男歌手"
    ],
    [
      "U87",
      "江志仁",
      "粤语",
      283,
      "黄伟文",
      "浮夸",
      "2005-06-07T00:00:00.000Z",
      2005,
      "陈奕迅",
      "男歌手"
    ],
    [
      "What's Going On...?",
      "泽日生",
      "粤语",
      260,
      "林夕",
      "富士山下",
      "2006-11-23T00:00:00.000Z",
      2006,
      "陈奕迅",
      "男歌手"
    ],
    [
      "曹操",
      "林俊杰",
      "国语",
      242,
      "林秋离",
      "曹操",
      "2006-02-17T00:00:00.000Z",
      2006,
      "林俊杰",
      "男歌手"
    ],
    [
      "第二天堂",
      "林俊杰",
      "国语",
      267,
      "李瑞洵",
      "江南",
      "2004-06-04T00:00:00.000Z",
      2004,
      "林俊杰",
      "男歌手"
    ],
    [
      "The Moment",
      "林一峰",
      "国语",
      210,
      "易家扬",
      "遇见",
      "2003-08-22T00:00:00.000Z",
      2003,
      "孙燕姿",
      "女歌手"
    ],
    [
      "逆光",
      "李偲菘",
      "国语",
      287,
      "姚若龙",
      "我怀念的",
      "2007-03-22T00:00:00.000Z",
      2007,
      "孙燕姿",
      "女歌手"
    ],
    [
      "城堡",
      "Savan Kotecha、Andrew Marcus Frampton、Wayne Wilkins",
      "国语",
      214,
      "胡如虹",
      "爱情36计",
      "2004-02-27T00:00:00.000Z",
      2004,
      "蔡依林",
      "女歌手"
    ],
    [
      "特务J",
      "Bard、Alexander Bengt Magnus、Anders Hansson",
      "国语",
      227,
      "崔惟楷",
      "日不落",
      "2007-09-21T00:00:00.000Z",
      2007,
      "蔡依林",
      "女歌手"
    ],
    [
      "看我72变",
      "周杰伦",
      "国语",
      228,
      "天天",
      "说爱你",
      "2003-03-07T00:00:00.000Z",
      2003,
      "蔡依林",
      "女歌手"
    ],
    [
      "谁明浪子心",
      "王杰",
      "粤语",
      301,
      "潘源良",
      "谁明浪子心",
      "1989-08-31T00:00:00.000Z",
      1989,
      "王杰",
      "男歌手"
    ]
  ]
}

36

txt格式

POST /_sql?format=txt
{
    "query":"SELECT * from music"
}

37

csv格式

POST /_sql?format=csv
{
    "query":"SELECT * from music"
}

38

tsv格式

POST /_sql?format=tsv
{
    "query":"SELECT * from music"
}

39

yaml格式

POST /_sql?format=yaml
{
    "query":"SELECT * from music"
}

40

  1. 过滤查询

模糊查询:

POST /_sql?format=json
{
    "query":"SELECT * from music where singer like '%杰%'"
}

41

如果字段是text类型,会被分词,使用like查询该字段时会报错,like操作符需要字段支持精准匹配(通常需要keyword类型)。

POST /_sql?format=txt
{
    "query":"SELECT name,age from emperor_new where dynasty like '%朝%'"
}

42

如果想要text类型字段能用SQL API模糊查询,可以安装NLPChina插件试下。

插件地址:https://github.com/NLPchina/elasticsearch-sql/

下载的版本保持和es版本对齐即可,由于我当前es的版本是8.19.3,但该插件没找到对应的版本,所以就不下载了。

安装之后将查询方式改下即可

43

POST

单个插入

向 emperor 索引创建文档。

POST /emperor/_doc
{
    "name":"李世民",
    "dynasty":"唐朝",
    "age":51
}

POST /emperor/_doc
{
    "name":"刘邦",
    "dynasty":["秦朝","汉朝"],
    "age":61
}

POST /emperor/_doc
{
    "name":"朱元璋",
    "dynasty":"明朝",
    "age":70
}

POST /emperor/_doc
{
    "name":"乾隆",
    "dynasty":"清朝",
    "age":89
}

27

批量插入
POST /music/_bulk
{"index":{}}
{"name": "黑色幽默", "length":283,"album":"Jay","lyricist":"周杰伦","composer":"周杰伦", "singer":"周杰伦","releaseyear":2000, "releasedate":"2000-11-07","singersex":"男歌手","language":"国语"}
{"index":{}}
{"name": "双截棍", "length":202,"album":"范特西","lyricist":"方文山","composer":"周杰伦", "singer":"周杰伦","releaseyear":2001,"releasedate":"2001-09-20","singersex":"男歌手","language":"国语"}
{"index":{}}
{"name": "爱在西元前", "length":256,"album":"范特西","lyricist":"方文山","composer":"周杰伦", "singer":"周杰伦","releaseyear":2001,"releasedate":"2001-09-20","singersex":"男歌手","language":"国语"}
{"index":{}}
{"name": "晴天", "length":269,"album":"叶惠美","lyricist":"周杰伦","composer":"周杰伦", "singer":"周杰伦","releaseyear":2003,"releasedate":"2003-07-31","singersex":"男歌手","language":"国语"}
{"index":{}}
{"name": "东风破", "length":243,"album":"惠美","lyricist":"方文山","composer":"周杰伦", "singer":"周杰伦","releaseyear":2003,"releasedate":"2003-07-31","singersex":"男歌手","language":"国语"}
{"index":{}}
{"name": "七里香", "length":267,"album":"七里香","lyricist":"方文山","composer":"周杰伦", "singer":"周杰伦","releaseyear":2004,"releasedate":"2004-08-03","singersex":"男歌手","language":"国语"}
{"index":{}}
{"name": "青花瓷", "length":239,"album":"我很忙","lyricist":"方文山","composer":"周杰伦", "singer":"周杰伦","releaseyear":2007,"releasedate":"2007-11-02","singersex":"男歌手","language":"国语"}
{"index":{}}
{"name": "十年", "length":205,"album":"黑・白・灰","lyricist":"林夕","composer":"陈小霞", "singer":"陈奕迅","releaseyear":2003,"releasedate":"2003-04-15","singersex":"男歌手","language":"国语"}
{"index":{}}
{"name": "浮夸", "length":283,"album":"U87","lyricist":"黄伟文","composer":"江志仁", "singer":"陈奕迅","releaseyear":2005,"releasedate":"2005-06-07","singersex":"男歌手","language":"粤语"}
{"index":{}}
{"name": "富士山下", "length":260,"album":"What's Going On...?","lyricist":"林夕","composer":"泽日生", "singer":"陈奕迅","releaseyear":2006,"releasedate":"2006-11-23","singersex":"男歌手","language":"粤语"}
{"index":{}}
{"name": "曹操", "length":242,"album":"曹操","lyricist":"林秋离","composer":"林俊杰", "singer":"林俊杰","releaseyear":2006,"releasedate":"2006-02-17","singersex":"男歌手","language":"国语"}
{"index":{}}
{"name": "江南", "length":267,"album":"第二天堂","lyricist":"李瑞洵","composer":"林俊杰", "singer":"林俊杰","releaseyear":2004,"releasedate":"2004-06-04","singersex":"男歌手","language":"国语"}
{"index":{}}
{"name": "遇见", "length":210,"album":"The Moment","lyricist":"易家扬","composer":"林一峰", "singer":"孙燕姿","releaseyear":2003,"releasedate":"2003-08-22","singersex":"女歌手","language":"国语"}
{"index":{}}
{"name": "我怀念的", "length":287,"album":"逆光","lyricist":"姚若龙","composer":"李偲菘", "singer":"孙燕姿","releaseyear":2007,"releasedate":"2007-03-22","singersex":"女歌手","language":"国语"}
{"index":{}}
{"name": "爱情36计", "length":214,"album":"城堡","lyricist":"胡如虹","composer":"Savan Kotecha、Andrew Marcus Frampton、Wayne Wilkins", "singer":"蔡依林","releaseyear":2004,"releasedate":"2004-02-27","singersex":"女歌手","language":"国语"}
{"index":{}}
{"name": "日不落", "length":227,"album":"特务J","lyricist":"崔惟楷","composer":"Bard、Alexander Bengt Magnus、Anders Hansson", "singer":"蔡依林","releaseyear":2007,"releasedate":"2007-09-21","singersex":"女歌手","language":"国语"}
{"index":{}}
{"name": "说爱你", "length":228,"album":"看我72变","lyricist":"天天","composer":"周杰伦", "singer":"蔡依林","releaseyear":2003,"releasedate":"2003-03-07","singersex":"女歌手","language":"国语"}
{"index":{}}
{"name": "谁明浪子心", "length":301,"album":"谁明浪子心","lyricist":"潘源良","composer":"王杰", "singer":"王杰","releaseyear":1989,"releasedate":"1989-08-31","singersex":"男歌手","language":"粤语"}

28

PUT

更新索引中的文档

向索引 emperor 中的文档ID值1进行添加或更新文档的操作,若ID值1已存在则更新文档,若不存在则创建文档。

每次执行PUT命令时,返回对象的_version字段都会自增+1,首次执行时返回的是1。

PUT /emperor/_doc/Xp70XJkBOIqdOt8ZQMQ_
{
    "name":"朱元璋",
    "dynasty":["元朝","明朝"]
}

29

DELETE

删除索引
  1. 删除单个索引
DELETE /index_name
  1. 删除多个索引
DELETE /index1,index2,index3

30

  1. 删除所有索引
DELETE /_all
# 或者
DELETE /*
删除索引中的文档

向索引 emperor 中的文档ID值1进行删除操作。

  • 如果ID为1的文档存在:会删除该文档,返回结果中 found 字段为 true,且 _version 会在当前版本号基础上加 1(即使删除也会递增版本)
  • 如果ID为1的文档不存在:返回结果中 found 字段为 false_version 仍会加 1。
DELETE /emperor/_doc/1

SQL转ES工具网站

https://old.printlove.cn/tools/sql2es

posted @ 2025-09-20 17:21  相遇就是有缘  阅读(26)  评论(0)    收藏  举报