Elasticsearch

Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎


kibana 创建索引

js 复制代码
// PUT /索引名/类型名/文档id
// {请求体}
PUT /test1/type1/1
{
  "name":"zhangsan",
  "age":1
}

设置索引规则(指定字段的类型)

js 复制代码
PUT /test2
{
  "mappings":{
    "properties": {
      "name":{
        // text类型会进行分词解析
        "type": "text"
      },
      "age":{
        "type": "long"
      },
      "birthday":{
        "type": "date"
      },
      "desc":{
        // keyword类型不会进行分词解析,会整体匹配
        "type": "keyword"
      }
    }
  }
}

修改文档

js 复制代码
方法一:直接使用PUT方式覆盖(未涉及的字段会被清空值)
方法二:使用POST方式在末尾加上"/_update"(不加的话,未涉及的字段也会被清空值)
POST /test1/type1/1/_update
{
 "doc": {
    "name":"zhangsan",
    "age":1
  }
}
修改后,version 属性会加 1

删除索引、文档

js 复制代码
DELETE 索引名
DELETE 索引名/类型名/文档id

查询索引、文档信息

js 复制代码
GET 索引名
GET 索引名/类型名/文档id
// 条件查询
GET 索引名/类型名/_search?q=name:zhangsan
查询结果的匹配度越高,那么"_score"属性值就越大

查询

javascript 复制代码
GET 索引名/类型名/_search
{
  "query": {
    "match": {
      // 多个条件使用空格隔开
      "字段名": "zhangsan lisi"
    }
  },
  // 查询哪些字段,默认查询所有
  "_source": ["name","age"],
  // 排序
  "sort": [
    {
      "age": {
        "order": "desc"
      }
    }
  ],
  //过滤器
  "filter": [
    {
      // 范围
      "range": {
        "age": {
          // gt:大于
          // lt:小于
          // gte:大于 等于
          // lte:小于 等于
          "gte": 1,
          "lte": 3
        }
      }
    }
  ],
  // 分页查询
  "from": 0,
  "size": 2,
  // 高亮查询
  "highlight": {
    // 自定义高亮前缀
    "pre_tags": "<div>",
    // 自定义高亮后缀
    "post_tags": "</div>",
    "fields": {
      "name": {}
    }
  }
}

多条件查询

js 复制代码
"query": {
  "bool": {
    // must:所有条件必须匹配,相当于 and
    // must_not:所有条件必须不匹配,相当于 not
    // should:匹配其中之一即可,相当于 or
    "must": [
      {
        "match": {
          "name": "zahngsan"
        }
      },
      {
        "match": {
          "age": "2"
        }
      }
    ]
  }
}

分词器

js 复制代码
GET _analyze
{
  // keyword 不进行分词解析
  // standard 进行分词解析
  "analyzer": "keyword",
  "text": ["春眠不觉晓"]
}
相关推荐
努力的小郑9 小时前
与产品经理的“模糊”对决:Elasticsearch实现MySQL LIKE '%xxx%' 的奇幻之旅
后端·elasticsearch·搜索引擎
秋已杰爱21 小时前
技术准备十五:Elasticsearch
大数据·elasticsearch·搜索引擎
starandsea1 天前
gitlab解决传过大文件后删除导致pack过大问题
大数据·elasticsearch·gitlab
大海绵啤酒肚1 天前
EL(F)K日志分析系统
运维·elasticsearch·云计算
Elasticsearch2 天前
如何在 AWS EC2 上安装和配置 Elasticsearch
elasticsearch
Elasticsearch2 天前
Elastic AI agent builder 介绍(二)
elasticsearch
维尔切2 天前
ELK日志系统部署与使用(Elasticsearch、Logstash、Kibana)
elk·elasticsearch·jenkins·kibana·logstash
帅帅梓2 天前
ELK es+logstash
大数据·elk·elasticsearch