文章目录
1.创建索引(可以理解创建mysql数据库)
1.代码
put /test/type/1
{
"name":"北辰君"
"age":"20"
}
2.语法
put /索引/类型/Id
{
请求体
}
//新版本type可以省略
3.效果图
2.创建索引规则(可以理解创建mysql表字段)
1.代码
put /test1
{
"mappings": {
"properties": {
"name": {
"type": "text"
},
"age": {
"type": "long"
}
}
}
}
2.效果图
3.官方文档地址
https://www.elastic.co/guide/en/elasticsearch/reference/current/keyword.html
3.修改文档信息(可以理解更新mysql数据)
1.代码
POST /test/type/1/_update
{
"doc": {
"name": "幽幽晚风君且临"
}
}
2.效果图
4.删除
1.代码
DELETE /test/type/1
2.效果图
5.查询(类似get请求的方式)
1.代码
GET test/type/_search?q=name:幽幽晚风君且临
2.效果图
6.复杂查询
1.基本简单查询
1.代码
GET test/type/_search
{
"query": {
"match": {
"name": "幽幽晚风君且临"
}
}
}
2.代码
2.查询时指定返回字段
1.代码
GET test/type/_search
{
"query": {
"match": {
"name": "幽幽晚风君且临"
}
},
"_source": ["name","age"]
}
2.效果图
3.排序
1.代码
GET test1/_search
{
"query": {
"match": {
"name": "幽幽晚风君且临"
}
},
"sort": [
{
"age": {
"order": "desc"
}
}
]
2.效果图
4.分页
1.代码
GET test1/_search
{
"query": {
"match": {
"name": "幽幽晚风君且临"
}
},
"sort": [
{
"age": {
"order": "desc"
}
}
],
"from": 0,
"size": 1
}
// from 起始页
// size 每页多少数据
2.效果图
5.多条件查询
1.代码
GET test1/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"name": "晚风"
}
},
{
"match": {
"age": 20
}
}
]
}
}
}
//must 相当于mysql and
//should 相当于mysql or
//must_not 相当于mysql !=
6.过滤器filter取范围值
1.代码
GET test1/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"name": "幽幽晚风君且临"
}
}
],
"filter": {
"range": {
"age": {
"gte": 20,
"lt": 30
}
}
}
}
}
}
//gte大于等于
//lt小于 e =
2.效果图
7.term精确查询
1.代码
GET test1/_search
{
"query": {
"term": {
"desc": "桃"
}
}
}
2.效果图
3.注解
- term会直接查询精确的
- metch会使分词器解析!(先分析文档,在通过分析的文档进行查询)
- text 会被分词器解析 keyword不会被分词器解析,它就是一个分词
8.精确查询多个值
1.代码
GET test1/_search
{
"query": {
"bool": {
"should": [
{
"term": {
"name": "晚风"
}
},
{
"term": {
"desc": "桃"
}
}
]
}
}
}
7.字段高亮
1.代码
GET test1/_search
{
"query": {
"match": {
"name": "晚风"
}
},
"highlight": {
"fields": {
"name": {}
}
}
}
2.效果图
8.自定义高亮样式
1.代码
GET test1/_search
{
"query": {
"match": {
"name": "晚风"
}
},
"highlight": {
"pre_tags": "<p class='name' style='color:red'>",
"post_tags": "</p>",
"fields": {
"name": {}
}
}
}