ES查询和监控

es安装

参考https://blog.csdn.net/okiwilldoit/article/details/137107087
再安装kibana,在它的控制台里写es查询语句。
在这里插入图片描述

es指南

es权威指南-中文版
kibana用户手册-中文版
es中文社区
es参考手册API
es客户端API

es查询语句

# 查询es版本
GET /

# 查询集群下所有index
GET /_cat/indices?v

# 查询节点
GET _cat/nodes?format=json

# 查询某个index的结构
GET /index_name/_mapping?pretty

#查询doc_id=123的详细信息
GET /index_name/_doc/123

# 查询作者为"猫腻"的作品,取出4个字段,100条数据,按照star_num和like_num倒排
GET /index_name/_search
{
  "query" : { 
    "match" : { 
      "authorname" : "猫腻" 
    }
  },
  "_source": ["ID","title","authorname","desc"],
  "size": 100,
  "sort": [{"star_num": {"order": "desc"}}, {"like_num":{"order": "desc"}}]
}

es bool查询

Bool查询则可以实现查询的组合,并支持多字段查询和精确匹配、模糊匹配、范围匹配等多种查询方式。下面我们来看一下Bool查询的基本语法:

{
  "query": {
    "bool": {
      "must": [
        { "match": { "title": "Search" }},
        { "match": { "content": "Elasticsearch" }}
      ],
      "filter": [
        { "term":  { "status": "published" }},
        { "range": { "publish_date": { "gte": "2019-01-01" }}} 
      ],
      "should": [
        { "match": { "author": "John" }},
        { "match": { "author": "Doe" }}
      ],
      "must_not": [
        { "match": { "category": "Marketing" }}
      ]
    }
  }
}

must:表示必须匹配的条件,相当于AND。
filter:表示过滤条件,可以提高查询效率,相当于WHERE。
should:表示应该匹配的条件,可以有多个,相当于OR。
must_not:表示必须不匹配的条件,相当于NOT。

在这个查询中,必须同时匹配 title 和 content 字段,同时 status 字段必须为 published,publish_date 字段必须大于等于 2019-01-01,并且 author 字段必须匹配 John 或者 Doe 中的至少一个,同时 category 字段不能匹配 Marketing

ES新增字段

在my_index索引表里新增new_feild字段
PUT my_index/_mapping
{
 "properties": {
   "new_feild" : {
      "type" : "boolean",
      "doc_values" : false
    }
 }
}

清空索引所有数据

POST /your_index/_delete_by_query
{
  "query": {
    "match_all": {}
  }
}

ES更新字段

#更新单个字段
//字段名为item_name的值更新为2322332
POST index_name/_update/$id/
{
  "doc": {
    "item_name": "2322332" 
  }
}
#更新数组字段,新增值
//字段名是tags,是个多值字段
//tags更新前是["1"],更新后是["1","blue"]
POST index_name/_update/$id/
{
  "script": {
    "source": "ctx._source.tags.add(params.tag)",
    "lang": "painless",
    "params": {
      "tag": "blue"
    }
  }
}
//判断是否存在,不存在再添加
POST index_name/_update/$id/
{
  "script": {
    "source": """
      def tags = ctx._source.tags;
      def value = "-1";
      if (!tags.contains(value)) {
        tags.add(value);
      }
    """,
    "lang": "painless"
  }
}
#更新数组字段,删除值
//字段名是tags,是个多值字段
//tags更新前是["1","blue"],删除值为"blue"后,变成["1"]
POST index_name/_update/$id/
{
  "script": {
    "source": """
      for(int i = 0; i < ctx._source.tags.size(); i++) {
        if(ctx._source.tags[i] == 'blue') {
          ctx._source.tags.remove(i);
          break; 
        }
      }
    """,
    "lang": "painless"
  }
}

ES SQL

6.3版本后支持SQL,但是不支持join等复杂操作。
https://www.elastic.co/guide/en/elasticsearch/reference/current/sql-spec.html
https://www.elastic.co/guide/en/elasticsearch/reference/current/sql-search-api.html

POST _sql?format=txt
{
  "query": "SELECT author, title FROM index_name WHERE MATCH(title, '猎鬼') ORDER BY updateTime DESC LIMIT 100"
}

ES监控

通过kibana可以看到es的监控信息,包括每个索引的查询耗时等。
在这里插入图片描述

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Elasticsearch提供了多种监控工具和性能分析工具,以下是其中一些常用的工具: 1. Elasticsearch Marvel:Elasticsearch Marvel是一个官方提供的监控和管理工具,它可以提供实时的集群状态、性能指标和健康状况。通过Marvel,您可以监控集群的各种指标,如索引和搜索的吞吐量、查询延迟、节点的负载等。 2. Elasticsearch X-Pack:Elasticsearch X-Pack是一个集成了多个功能的插件,其中包括监控、报警、安全性、报告和机器学习等功能。通过X-Pack的监控功能,可以实时监控集群的性能指标,并设置报警规则以便在出现问题时及时通知。 3. Elasticsearch Prometheus Exporter:Prometheus是一个开源的监控系统,而Elasticsearch Prometheus Exporter是一个用于将Elasticsearch的指标导出到Prometheus的工具。通过将Elasticsearch的指标导入到Prometheus中,您可以使用Prometheus的强大查询和可视化功能来分析和监控Elasticsearch集群。 4. Elasticsearch Kopf:Elasticsearch Kopf是一个开源的Web界面工具,它提供了对Elasticsearch集群的实时监控和管理功能。通过Kopf,您可以查看集群的状态、索引的健康状况、节点的负载等信息,并执行一些管理操作,如创建索引、删除索引、添加节点等。 5. Elasticsearch Cerebro:Elasticsearch Cerebro是另一个开源的Web界面工具,它提供了对Elasticsearch集群的监控和管理功能。Cerebro具有类似Kopf的功能,可以查看集群的状态、索引的健康状况、节点的负载等信息,并执行一些管理操作。 这些工具可以帮助您监控和分析Elasticsearch集群的性能指标,以便及时发现和解决潜在的问题。您可以根据自己的需求选择适合的工具来进行监控和性能分析。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值