其他分享
首页 > 其他分享> > Eleasticreach学习-02

Eleasticreach学习-02

作者:互联网

新增

//这里的stu是_type;4是id

PUT /demo4/stu/4
{
  "name":"王五",
  "age":26
}

//注意这里的_create不是_type,是创建文档的一个表示或者
//可以说是命令关键字
POST /demo4/_create/1
{
  "name":"王二",
  "age":20
}

简单查询

#根据id查询数据
GET / 索引 / _type / id      //这里不介意使用_type字段,后面会删除
> GET /demo2/_search?q=name:张   //q(query)

注意:keyword 类型的字段ik分词器是不会拆分词的

复杂查询

#下面俩句话一个意思
GET /demo2/_search?q=name:张   //q(query)

GET /demo4/_search    //demo4是索引(就是库的名称)
{
 "query": {    //query就是上面的那个q
   "match": {   //匹配条件
     "name": "张三"   //要匹配的字段
   }
 }
}

在这里插入图片描述

GET /demo4/_search
{
  "query": {
    "match": {
      "name": "张三"
    }
  },
  "_source": ["name"]   //添加返回结果过滤,就是想让查询结果包含那些字段
}

在这里插入图片描述
使用java操作es,里面的方法、对象就是这里的key

GET /demo4/_search
{
  "query":{
    "match": {
      "name": "张"
    }
  },
  "sort": [    //排序
    {
      "age": {
        "order": "asc"
      }
    }
  ]
}
使用排序之后,_score、max_score是null

在这里插入图片描述

GET /demo4/_search
{
  "query":{
    "match": {
      "name": "张"
    }
  },
  "sort": [
    {
      "age": {
        "order": "asc"
      }
    }
  ],
  //分页查询,from表示从哪开始,size表示每页显示几条数据
  "from": 0,
  "size": 2
}

bool查询

GET /demo4/_search
{
  "query":{
    "bool": {
      "must": [   
        {
          "match": {
            "name": "张三"
          }
        },{
          "match": {
            "age": 24
          }
        }
      ]
    }
  }
}

must : 条件都要满足    (and)
should:条件满足其一就好   (or)
must_not:must的反向过滤 	

filter过滤

GET /demo4/_search
{
  "query":{
    "bool": {
      "must": [
        {
          "match": {
            "name": "张三"
          }
        }
      ],
      //添加过滤条件
      "filter": [
        {"range": {
          "age": {
            "gte": 20,   //大于等于
            "lte": 26    //小于等于
          }
        }}
      ]
    }
  }
}

gt  大于
lt  小于

匹配多个条件,模糊查询

GET /demo4/_search
{
  "query":{
    "match": {
     ##这里的狂神和三是两个匹配条件, 可以使用" 空格"将其隔开
      "name": "狂神 三"
    }
    
  }
}

精确查询 term

term直接通过倒排索引指定的词条进行精确的查找。
关于分词:

多值匹配,精确查询

##bool查询的should和term查询结合

GET /demo4/_search
{
  "query": {
    "bool": {
      "should": [
        {
          "term": {
            "age": {
              "value": 24
            }
          }
        },{
          "term": {
            "age": {
              "value": 26
            }
          }
        }
      ]
    }
  }
}

高亮查询

GET /demo4/_search
{
  "query":{
    "match": {
      "name": "狂神 三"
    }
    
  },
  //高亮查询设置
  "highlight": {
  
  	//pre_tags、post_tags 这两个是我们自定义
  	高亮样式(css语法)
    "pre_tags": "<p class='key' style='color:red'>",
    "post_tags": "</p>",
     
    //设置我们要高亮的字段
    "fields": {
      "name": {}
    }
  }
}

删除

//DELETE--关键字 demo4--索引名 stu--_type名 
DELETE /demo4/stu/{id}

修改

POST /demo3/_update/1  //参考这种写法,上面那种加_type的给提示说,_type会被删除。
{
  "doc":{   
      "name":"张三法外狂徒"
  }
}

标签:02,search,name,GET,Eleasticreach,查询,学习,demo4,query
来源: https://blog.csdn.net/weixin_36347219/article/details/116401497