当前位置: 首页>后端>正文

kibana查看es存储数据 kibana操作es数据

官方文档:https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html

9.基本使用

ES 是RESTful 风格的系统,所以我们需要先掌握RESTful 的四个关键词:PUT(修改),POST(添加),DELETE(删除),GET(查询)。其中在ES里面PUTPOST的界限并不是很分明,有时候PUT也作为添加。

kibana查看es存储数据 kibana操作es数据,kibana查看es存储数据 kibana操作es数据_kibana查看es存储数据,第1张

不设置文档类型时,默认文档类型为_doc

基本数据类型:

  • 字符串类型:text、keyword
  • 数值类型:long、integer、short、byte、double、float、half float、scaled float
  • 日期类型:date
  • 布尔类型:boolean
  • 二进制类型:binary

API基本格式: http:// < ip > : < port >/<索引>/<类型>/<文档id>

在kibana中可以省去http:// < ip > : < port >

9.1索引创建

相当于创建库
API基本格式: http:// < ip > : < port >/<索引> (http://localhost:9100/book)
HTTP动词:PUT

PUT /book
{
  "settings": {
    "number_of_shards" : 3,  
    "number_of_replicas" : 1 
  }, 
  "mappings" : {  
      "properties" :{
        "name" : {
          "type" : "text"
        },
        "country" : {
          "type" : "keyword"
        },
        "age" :{
          "type" : "integer"
        },
        "date" : {
          "type" : "date",
          "format" : "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
        }
        
      }
    }
}

kibana查看es存储数据 kibana操作es数据,kibana查看es存储数据 kibana操作es数据_API_02,第2张

创建成功提示信息

kibana查看es存储数据 kibana操作es数据,kibana查看es存储数据 kibana操作es数据_大数据_03,第3张

9.2 插入

9.2.1指定文档id插入

API基本格式: http:// < ip > : < port >/<索引>/<类型>/<文档id> (http://localhost:9100/book/_doc/1)
HTTP动词:PUT

PUT /book/_doc/1
{
  "name" : "核心原理",
  "country" : "CN",
  "age" : 18,
  "date" : "2022-03-23"
}

kibana查看es存储数据 kibana操作es数据,kibana查看es存储数据 kibana操作es数据_java_04,第4张

自动产生文档id插入

API基本格式: http:// < ip > : < port >/<索引>/<类型>
HTTP动词:POST

POST /book/_doc
{
  "name" : "编程核心原理",
  "country" : "CN",
  "age" : 25,
  "date" : "2021-04-12"
}

9.3 修改

API基本格式: http:// < ip > : < port >/<索引>/<类型>/<文档id>/_update
HTTP动词:POST

直接修改文档

POST /book/_doc/1/_update
{
  "doc" : {
    "name" : "深入核心原理"
  }
}

脚本修改文档

script中内容有不同的脚本语言这里就不详细的介绍了

POST /book/_doc/1/_update
{
  "script" : {
    "lang" : "painless",
    "inline" : "ctx._source.age += 10"
  }
}

9.4 删除

HTTP动词:DELETE

删除文档

API基本格式: http:// < ip > : < port >/<索引>/<类型>/<文档id>

DELETE /book/_doc/1

删除索引

API基本格式: http:// < ip > : < port >/<索引>

DELETE /book

9.5 查询

9.5.1简单查询

API基本格式: http:// < ip > : < port >/<索引>/<类型>/<文档id>
HTTP动词:GET

GET /book/_doc/1

9.5.2条件查询

API基本格式: http:// < ip > : < port >/<索引>/_search
HTTP动词:POST

9.5.2.1查询全部
POST /book/_search
{
  "query": {
    "match_all": {}
  }
}
9.5.2.2 从哪开始,返回几个 (from,size)
POST /book/_search
{
  "query": {
    "match_all": {}
  },
  "from": 0,
  "size": 1
}
9.5.2.3 匹配查询 (match)
POST /book/_search
{
  "query": {
    "match": {
      "name" : "编程"
    }
  }
}
9.5.2.4 匹配权重查询(sort)
POST /book/_search
{
  "query": {
    "match": {
      "name" : "核心原理"
    }
  },
  "sort": [
    {
      "age": {
        "order": "asc"
      }
    }
  ]
}

9.5.3聚合查询(ages)

9.5.3.1 分类(terms)
POST /book/_search
{
  "aggs": {
    "group_by_date": {
      "terms": {
        "field": "date"
      }
    },
    "group_by_country":{
      "terms": {
        "field": "country"
      }
    }
  }
}
9.5.3.2 统计(stats)
POST /book/_search
{
  "aggs": {
    "group_by_date": {
      "stats": {
        "field": "age"
      }
    }
    
  }
}

9.6 高级查询

子条件查询(特定字段查询所指特定值)

Query context :

在查询过程中,除了判断文档是否满足查询条件外,ES还会计算一个_score来标识匹配的程度,旨在判断目标文档和条件查询条件匹配的有多好

全文本查询(针对文本类型数据)

API基本格式: http:// < ip > : < port >/<索引>/_search
HTTP动词:POST

  • 模糊匹配
    当我们查找核心原理时,es会查找与核心,和原理能够匹配的数据,因此,在模糊条件下查找核心原理这一数据,将会把超级核心、核心超级原理、核心原理和编程核心原理都返回回来
POST /book/_search
{
  "query": {
    "match": {
      "name": "核心原理"
    }
  }
}
  • 习语查询
    习语匹配与模糊匹配不同,当需要配匹核心原理时,只会返回包含核心原理的数据,并不会返回与之类似的
POST /book/_search
{
  "query": {
    "match_phrase": {
      "name": "核心原理"
    }
  }
}
  • 多个字段模糊匹配查询(keyword不允许)
POST /book/_search
{
  "query": {
    "multi_match": {
      "query": "18",
      "fields": ["name", "age"]
    }
  }
}
  • 语法查询(OR、AND)
POST /book/_search
{
  "query": {
    "query_string": {
      "query": "USA编程 AND 超级核心原理"
    }
  }
}
  • 语法查询(OR、AND)(指定多个字段)
POST /book/_search
{
  "query": {
    "query_string": {
      "query": "java OR 编程",
      "fields": ["name", "country"]
    }
  }
}
字段级别查询(针对结构化数据、如数字、日期等)
  • 数据具体查询
POST /book/_search
{
  "query": {
    "term": {
      "age": 18
    }
  }
}
  • 数据范围查询
  • gt 大于
    gte 大于等于
    lt小于
    lte小于等于
POST /book/_search
{
  "query": {
    "range": {
      "age": {
        "gte": 18,
        "lte": 33
      }
    }
  }
}
Filter context

查询过程中,只判断该文档是否满足条件,只有Yes和No

POST /book/_search
{
  "query": {
    "bool": {
      "filter": [
        {
          "term": {
            "age": "18"
          }
        }
      ]
    }
  }
}

复合条件查询(以一定的逻辑组合子条件查询)

固定分数查询

会将权重调成所设定的分数

POST /book/_search
{
  "query": {
    "constant_score": {
      "filter": {
        "match":{
          "name" : "核心原理"
        }
      },
      "boost": 1.2
    }
  }
}
布尔查询
  • should(满足其中一个条件即可)
POST /book/_search
{
  "query": {
    "bool": {
      "should": [
        {
          "match": {
            "age": "18"
          }
        },
        {
          "match": {
            "name": "java"
          }
        }
      ]
    }
  }
}
  • must(需要同时满足两个条件)
POST /book/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "age": "90"
          }
        },
        {
          "match": {
            "name": "java"
          }
        }
      ]
    }
  }
}
  • must_not(一定要不满足)
POST /book/_search
{
  "query": {
    "bool": {
      "must_not": [
        {
          "match": {
            "age": "90"
          }
        },
        {
          "match": {
            "name": "java"
          }
        }
      ]
    }
  }
}

10 高亮显示

POST /book/_search
{
  "query":{
    "match": {
      "name": "java"
    }
  },
  "highlight":{
    "pre_tags": "<p class='key' style='color:red'>", 
    "post_tags": "</p>", 
    "fields":{
      "name":{}
    }
  }
}



https://www.xamrdz.com/backend/3v41942293.html

相关文章: