栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

ElasticSearch + Kibana安装及使用(2)

ElasticSearch + Kibana安装及使用(2)

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

9.基本使用

ES 是RESTful 风格的系统,所以我们需要先掌握RESTful 的四个关键词:PUT(修改),POST(添加),DELETe(删除),GET(查询)。其中在ES里面PUT和POST的界限并不是很分明,有时候PUT也作为添加。
不设置文档类型时,默认文档类型为_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"
        }
        
      }
    }
}


创建成功提示信息

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"
}

自动产生文档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中内容有不同的脚本语言这里就不详细的介绍了可以阅读此篇文章

https://blog.csdn.net/darkness0604/article/details/107594190

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": "

", "post_tags": "

", "fields":{ "name":{} } } }
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/774215.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号