Elasticsearch

ElasticSearch

restful风格

1. PUT—创建文档(指定文档id)

格式: PUT /索引名称/类型名称/文档id {}

案例:

(I) 创建一个索引

put.png

(II)创建指定字段类型的索引(如果没有指定类型,es会默认配置)

put /test04
{
  "mappings":{
    "properties":{
      "name":{
        "type":"text"
      },
      "age":{
        "type":"long"
      },
      "birthday":{
        "type":"date"
      }
    }
  }
}

fen2.png

2. POST

(I)修改文档

格式: POST /索引名称/类型名称/_update {}

(II)查询所有数据

格式: POST /索引名称/类型名称/_update {}

(III)创建文档

格式: POST /索引名称/类型名称 {}

案例1: 修改文档

post.png

案例2:查询所有数据

Snipaste_20.png

案例3:创建文档

post-create.png

3. DELETE—删除文档

格式: DELETE /索引名称/类型名称/文档id {}

delete.png

4. GET—通过文档id查询文档

格式: GET /索引名称/类型名称/文档id {}

案例

get.png

精准查询(输入javascript可以查到数据)

get2.png

复杂查询

1. 简单的模糊查询

GET /test02/_doc/_search
{
  "query":{
    "match":{
      "name":"张"
    }
  }
}

d-46.png

2. 多条件查询—must(相当于and)

GET /test02/_doc/_search
{
  "query":{
    "bool":{
      "must":[
          {
            "match":{
              "name":"张三"
            }
          },
          {
            "match":{
              "age": 14
            }
          }
        ]
    }
  }
}

多条件查询.png

3. should查询—相当于or

GET /test02/_doc/_search
{
  "query":{
    "bool":{
      "should":[
          {
            "match":{
              "name":"张三"
            }
          },
          {
            "match":{
              "age": 14
            }
          }
        ]
    }
  }
}

should查询.png

4. must_not查询—相当于不等于

GET /test02/_doc/_search
{
  "query":{
    "bool":{
      "must_not":[
          {
            "match":{
              "age": 14
            }
          }
        ]
    }
  }
}

not查询.png

5. 过滤结果—filter

GET /test02/_doc/_search
{
  "query":{
    "bool":{
      "must":[
          {
            "match":{
              "name": "张三"
            }
          }
        ],
        "filter":{
          "range":{
            "age":{
              "gt":10,
              "lt":25
            }
          }
        }
    }
  }
}

filter.png

  • gt 大于

  • gte 大于等于

  • lt 小于

  • lte 小于等于!

6. 匹配多条件查询

-- 新建一个数组类型的字段,进行匹配多条件查询
put /test09
{
  "mappings":{
    "properties":{
      "name":{
        "type":"text"
      },
        "tags":{
          "type":"text"
        }
    }
  }
}

-- 添加数据
PUT /test09/_doc/3
{
 "name":"djskfj",
 "arr": ["女","技术"]
}

数组中查询.png

7. 查询指定字段使用—"_source"

GET /test02/_doc/_search
{
  "query":{
    "match":{
      "name":"张"
    }
  },
  "_source":["name","age"]
}

查询指定字段.png

8. 对结果进行排序—“sort"

GET /test02/_doc/_search
{
  "query":{
    "match":{
      "name":"张"
    }
  },
  "sort":[
      {
        "age":{
          "order":"desc"
        }
      }
    ]
}

排序.png

9. 分页查询—from size

GET /test02/_doc/_search
{
  "query":{
    "match":{
      "name":"张"
    }
  },
  "sort":[
      {
        "age":{
          "order":"desc"
        }
      }
    ],
    "from":0,
    "size":1
}

分页查询.png

10. 高亮查询

GET /test10/_doc/_search
{
  "query":{
    "match":{
      "name":"中国"
    }
  },
  "highlight":{
    "fields":{
      "name":{}
    }
  }
}

高亮查询.png

关于分词:

term ,直接查询精确的 ,term 查询是直接通过倒排索引指定的词条进程精确查找的(比较快)

match,会使用分词器解析!(先分析文档,然后在通过分析的文档进行查询!)

两个类型 text keyword

-- 类型是text
GET /test10/_doc/_search
{
  "query":{
    "term":{
      "name":"中"
    }
  }
}
```·
![fen.png](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9pLmxvbGkubmV0LzIwMjAvMDYvMTAvdlFCbThWbDRmTGtDRXFvLnBuZw?x-oss-process=image/format,png)
```sql
-- 类型是keyword
GET /test10/_doc/_search
{
  "query":{
    "term":{
      "desc":"超越一切"
    }
  }
}

keyword类型.png

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值