插入数据:指定id
http://localhost:9200/people2/_doc/1 put
{
"name": "张三",
"age": 20,
"date": "2019-10-29"
}
插入数据:使用es默认创建的id
http://localhost:9200/people2/_doc/ post
{
"name": "李四",
"age": 29,
"date": "2019-10-31"
}
修改数据:根据id修改 (还可以根据脚本修改)
http://localhost:9200/people2/_doc/1/_update post
{
"doc": {"name": "小二"}
}
删除数据:根据id删除
http://localhost:9200/people2/_doc/1 delete
删除数据:根据条件(名称)删除
http://localhost:9200/people/_doc/_delete_by_query post
{
"query":{
"match_phrase":{
"name":"李四"
}
}
}
删除索引(谨慎删除): head插件删除
删除索引(谨慎删除):请求接口删除
http://localhost:9200/people delete
查询语法
简单查询:
http://localhost:9200/people2/_doc/1 get 根据id查询
http://localhost:9200/people2/_doc/_search get 查询所有
{
"query": {
"match_all":{}
}
}
或者直接调用接口
复杂查询:
http://localhost:9200/people2/_doc/_search post 查询一条数据
{
"query": {
"match":{}
},
"from":1,
"size":1
}
模糊查询+分页查询两个数据从第0开始,排序规则倒叙
http://localhost:9200/people2/_doc/_search post
{
"query": {
"match":{"name":"三"}
},
"from":0,
"size":2,
"sort": [{"id":{"order":"desc"}}]
}
聚合查询:
http://localhost:9200/people2/_doc/_search post 根据年龄统计总数
{
"aggs": {
"group_by_age": {
"terms": {
"field":"age"
}
}
}
}
高级查询
子条件查询:特定字段查询所指特定值
query context
全文本查询:针对文本类型数据;(模糊匹配,精确匹配,多个字段查询)
1.模糊查询:查询名称包含三的 (如果查询 es入门 会把所有相关es和入门两个词相关的都查出来)
{
"query": {
"match":{
"name":"es入门"
}
},
"from":0,
"size":2
}
2模糊查询:.喜雨匹配(查询es入门 只会把es入门作为一个关键词去查询)
{
"query": {
"match_phrase":{
"name":"es入门"
}
}
}
3.多字段查询:查询title author 都包含瓦利
{
"query": {
"multi_match":{
"query":"瓦利",
"fields":["author","title"]
}
}
}
4query_string.查询包含python和大法
{
"query": {
"query_string":{
"query":"python AND 大法"
}
}
}
5query_string.查询包含python和大法
{
"query": {
"query_string":{
"query":"python AND 大法",
"fields":["author","title"]
}
}
}
字段级别查询:针对结构化数据 如:数字,日期;
查询年龄等于20的
{
"query": {
"term":{
"age":20
}
}
}
查询5<=age=<20的
{
"query": {
"range":{
"age":{
"gte":5,
"lte":20
}
}
}
}
filler context 做数据过滤,缓存,查询快 在查询过程中只会判断是否满足条件,yes ||no
{
"query":{
"bool":{
"filter":{
"term":{
"age":20
}
}
}
}
}
复合条件查询:以一定的逻辑组合条件查询
固定分数查询
布尔查询
should只要满足一个条件就可以 must
{
"query": {
"bool": {
"should": [
{"match": {
"name":"三撒"
}
},
{
"match":{
"age": 20
}
}
]
}
}
}
增加过滤条件:查询满足三个条件
{
"query": {
"bool": {
"must": [
{"match": {
"name":"三撒"
}
},
{
"match":{
"age": 20
}
}
],
"filter":[{"term":{"date":"2019-10-05"}}]
}
}
}
查询不包含 三
{
"query": {
"bool": {
"must_not": {
"term": {
"name": "三"
}
}
}
}
}