Kibana开发工具操作es

这篇具有很好参考价值的文章主要介绍了Kibana开发工具操作es。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

(1)字符串类型:
·text :用于全文检索,将当前field进行分词;
·keyword :当前field不会被分词;
(2)数值类型:
·long:  8个字节,范围(-2的63次方到2的63次方-1)
·integer:  4个字节,范围(-2的31次方到2的31次方-1)
·short:  2个字节,范围(-2的15次方到2的15次方-1)
·byte:  1个字节,范围(-2的7次方到2的7次方-1)
·double:  8个字节,范围(e+308表示是乘以10的308次方,e-324表示乘以10的负324次方)
·float :  4个字节,(e+38表示是乘以10的38次方,e-45表示乘以10的负45次方)
·half_float :精度比float小一半。
·scaled_float :根据一个long和scaled来表达一个浮点型,long-345,scaled-100 -> 3.45
(3)时间类型:
·date类型  还需要指定格式
(4)布尔类型:
·boolean类型,表达true和false
(5)二进制类型:
·binary类型暂时支持Base64 encode string
(6)范围类型:
·long_range:赋值时,无需指定具体的内容,只需要存储一个范围即可,指定gt,lt,gte,lte
·integer_range:同上
·double_range:同上
·float_range:同上
·date_range:同上
·ip_range:同上
(7)经纬度类型:
(8)Ip类型:

创建索引(test_user(表名))

PUT test_user
{
  "settings": {
    "index": {
      "number_of_shards": "3",
      "number_of_replicas": "0"
    }
  }
}

定义mappering(相当数据库字段)

PUT test_user/_mapping
{
    "properties": {
      "id": {
        "type": "long"
      },
    
      "name": {
        "type": "keyword"
      },
      "age": {
        "type": "integer"
      }
    } 
}

查看索引设置(表设置)

GET test_user/_settings

查看所有索引

GET _settings

创建索引同时创建字段

PUT dade04
{
  "mappings":{
    "properties":{
      "name":{
        "type":"text"
      }
    }
  }
}

添加文档和索引(新建一个索引并添加数据)

第一种写法(索引test_user(表名))
PUT /test_user/_bulk?refresh
{"index":{"_id": "1"}}
{"id": "1", "name": "dade", "age": "18"}
{"index":{"_id": "2"}}
{"id": "2", "name": "dade1", "age": "18"}
{"index":{"_id": "3"}}
{"id": "3", "name": "dade2", "age": "18"}

第二种写法,dade是索引(表名)
PUT /dade/_bulk
{"index":{"_id": "8"}}
{"id": "922", "name": "2312312", "age": "18"}

post请求方式
POST  /dade/_bulk
{"index":{"_id":"2356"}}
{"id": "92272222","name": "2312312sw","age": "18"}

添加文档和更新文档

根据索引index的_id,存在就是更新,不存在添加

PUT /dade/_bulk
{"index":{"_id":"236"}}
{"id": "9227","name": "2312312sw","age": "18"}

或

POST /dade/_bulk
{"index":{"_id":"236"}}
{"id": "9227","name": "2312312sw","age": "18"}

删除文档

2356是index的索引id

#根据2356删除
DELETE /dade/_doc/2356
#删除表
DELETE dade

es使用sql

查询所有表

POST /_sql?format=txt
{
  "query": "SHOW TABLES"
}

查询sql(和数据库操作一致,其它查询)

POST /_sql?format=txt
{
  "query": "SELECT * FROM test_user"
}

POST /_sql?format=json
{
  "query": "SELECT * FROM test_user"
}

POST /_sql?format=txt
{
  "query": "SELECT * FROM dade where  name like '%大得%'"
}

ik分词器查询

没安装ik之前分词(是一个一个字的)

GET _analyze
{
  "analyzer":"standard",
  "text":"今天大得来啦"
}

安装之后(词组等等都可以)

粗粒度分词

GET _analyze
{
  "analyzer":"ik_smart",
  "text":"今天大得来啦"
}

细粒度分词

GET _analyze
{
  "analyzer":"ik_max_word",
  "text":"今天大得来啦"
}

查询文档

词条查询:term

词条查询不会分析查询条件,只有当词条和查询字符串完全匹配时才匹配搜索

全文查询:match

全文查询会分析查询条件,先将查询条件进行分词,然后查询,求集合

使用ik分词器上面的索引要重新创建,或者更改,因为没使用ik分词器创建的,默认使用默认分词一个一个字的

创建索引,添加映射,指定使用ik分词器,analyzer指定分词器

PUT dade
{
  "mappings": {
    "properties": {
      "id":{
        "type":"keyword"
      },
      "name":{
        "type": "text",
        "analyzer":"ik_max_word"
      }
    }
  }
}

添加数据
PUT dade/_doc/3
{
  "id":1,
  "name":"大得"
}

term查询(匹配大得词查询)

GET dade/_search
{
  "query": {
    "term": {
      "name": {
        "value": "大得"
      }
    }
  }
}

match查询(对大得大分词查询)

GET dade/_search
{
  "query": {
    "match": {
      "name": "大得大"
    }
  }
}

高级操作

批量操作

Bulk批量操作是将文档的增删改查一系列操作,通过一次请求全部做完,减少网络传输次数

#delete删除表dade,id是1的数据
#create创建,id是1,内容放下面
#update更新id是3的,内容下面
POST _bulk
{"delete":{"_index":"dade","_id":2}}
{"create":{"_index":"dade","_id":1}}
{"id":6,"name":"大得369"}
{"update":{"_index":"dade","_id":3}}
{"doc":{"id":6,"name":"大得36922"}}

导入数据

将数据库表数据导入到es

创建索引(表),然后查询数据库,使用上面的批量查询写入

查询

match_all查询(所有)和分页

#from是从第0页开始,size一页20条
GET dade/_search
{
  "query": {
    "match_all": {}
  },
  "from": 0,
  "size": 20
}

#value总条数,命中
"total" : {
      "value" : 3,
      "relation" : "eq"
    },

term查询

GET dade/_search
{
  "query": {
    "term": {
      "name": {
        "value": "大得"
      }
    }
  }
}

GET cdj_order_detail/_search
{
  "query": {
    "term": {
      "h_name_date.keyword":"佛山风度国际名苑项目->区域1->商铺->北区->546"
    }
  },
  "track_total_hits":true,
  "from":0,
  "size":12
}

match查询

GET dade/_search
{
  "query": {
    "match": {
      "name": "大得大"
    }
  }
}

#operator表示对分词进行and条件,等于大得并且等于手机
GET dade/_search
{
  "query": {
    "match": {
      "name": {
        "query": "大得手机",
        "operator": "and"
      }
    }
  }
}

模糊查询

wildcard查询:会对查询条件进行分词,还可以通配符?(?表示任意单个字符)和*(*表示0个或多个字符)

regexp查询:正则查询

prefix查询:前缀查询

wildcard查询

#以大开头的,大*,模糊*得*
GET dade/_search
{
  "query": {
    "wildcard": {
      "name": {
        "value": "大*"
      }
    }
  }
}

regexp查询

GET dade/_search
{
  "query": {
    "regexp": {
      "name": "\\大+(.)*"
    }
  }
}

prefix查询

GET dade/_search
{
  "query": {
    "prefix": {
      "name": {
        "value": "大"
      }
    }
  }
}

范围查询

range范围查询,查询指定字段在指定范围内包含值

#可用到价格,这里范围1-2
GET dade/_search
{
  "query": {
    "range": {
      "id": {
        "gte": 1,
        "lte": 2
      }
    }
  }
}

queryString查询(多字段同时查询操作)

queryString

会对查询条件进行分词,

然后将分词后的查询条件和词条进行查询匹配

默认取集合(or)

可以指定多个字段进行查询

#在id和name找
GET dade/_search
{
  "query": {
    "query_string": {
      "fields": ["id","name"], 
      "query": "大得"
    }
  }
}
#and,or查询
GET dade/_search
{
  "query": {
    "query_string": {
      "fields": ["id","name"], 
      "query": "大得 or 3 and 9"
    }
  }
}

#大得和or和3是三个词
GET dade/_search
{
  "query": {
    "simple_query_string": {
      "fields": ["id","name"], 
      "query": "大得 or 3"
    }
  }
}

布尔查询(多条件查询)

bool:对多个查询条件连接,连接方式

must(and):条件必须成立and

must_not(not):条件必须不成立not

should(or):条件可以成立or

filter:条件必须成立,性能比must高,不会计算得分,and

可同时拼接5个使用

must查询(等于大得并且等于订单)

GET dade/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "term": {
            "name": {
              "value": "大得"
            }
          }
        },
        {
          "match": {
            "name": "订单"
          }
        }
      ]
    }
  }
}

或
GET dade/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "term": {
            "name": {
              "value": "大得"
            }
          }
        }
      ],
      "filter": [
        {
          "term": {
            "name": "订单"
          }
        }
      ]
    }
  }
}
#多个
GET dade/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "term": {
            "name": {
              "value": "大得"
            }
          }
        }
      ],
      "filter": [
        {
          "term": {
            "name": "大得"
          }
        }
      ],
      "must_not": [
        {
          "match": {
            "name": "来了"
          }
        }
      ]
    }
  }
}

聚合查询(求和等,分组)

指标聚合:相当mysql的max,min,avg,sum等等

桶聚合:相当mysql的group by操作,不要对text类型的数据进行分组,会失败

指标聚合

GET dade/_search
{
  "query": {
    "match": {
      "name": "大得"
    }
  },
  "aggs": {
    "money_max": {
      "sum": {
        "field": "price"
      }
    }
  }
}

桶聚合(分组查询)

GET dade/_search
{
  "query": {
    "match": {
      "name": "大得"
    }
  },
  "aggs": {
    "grout_id": {
      "terms": {
        "field": "id",
        "size": 100
      }
    }
  }
}

高亮查询

GET dade/_search
{
  "query": {
    "match": {
      "name": "大得"
    }
  },
  "highlight": {
    "fields": {
      "name":{
        "pre_tags": "<text style=''>",
        "post_tags": "</text>"
      }
    }
  }
}

索引别名和重建索引

重建索引

新建一个新的索引dade_v1

PUT dade_v1
{
  "mappings": {
    "properties": {
      "id":{
        "type": "long"
      },
      "name":{
        "type": "text"
      },
      "money":{
        "type": "float"
      }
    }
  }
}

dade拷贝数据到v1,source原,dest新,重建索引完成

POST _reindex
{
  "source": {
    "index": "dade"
  },
  "dest": {
    "index": "dade_v1"
  }
}
------------------------------------------------------------
数据太大超时千万级,使用wait_for_completion内部运行,直接返回task,执行任务,size每次多少条
POST _reindex?wait_for_completion=false
{
  "source": {
    "index": "cdj_order",
    "size":10000
  },
  "dest": {
    "index": "cdj_order248"
  }
}

查看task执行
指定taskid查询
GET _tasks/a2bFyLYGRVmjBNtGuDjmWg:24995109
全部
GET _tasks?detailed=true&actions=*
取消任务
POST _tasks/a2bFyLYGRVmjBNtGuDjmWg:24995109/_cancel

索引别名(重建索引,之前的删除,起别名之前的名字)dade_v1别名dade,这时候两个名字都可以查

POST dade_v1/_alias/dade

es默认查询只查10000条

解除限制

"track_total_hits": true, 文章来源地址https://www.toymoban.com/news/detail-758241.html

GET dade/_search
{
  "query": {
    "match_all": {}
  }, 
  "track_total_hits": true, 
  "aggs": {
    "money_max": {
      "sum": {
        "field": "money"
      }
    }
  }
}

到了这里,关于Kibana开发工具操作es的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Git-团队开发及版本控制工具(操作指南)

    下载地址:Git (git-scm.com) 或 Git for Windows 安装:一般情况一直next就行,详细请看:Git 详细安装教程(详解 Git 安装过程的每一个步骤)_git安装-CSDN博客 安装之后校验是否成功:如果出现版本号就说明安装成功了 2.1初始化本地仓库 初始化之后文件夹有一个.git文件,如果没有请

    2024年03月15日
    浏览(103)
  • 嵌入式软件开发常用的编辑代码工具、比较工具和测试工具的使用说明和操作步骤

    嵌入式软件开发常用的编辑代码工具有: Eclipse Eclipse是一款开源的集成开发环境,支持多种编程语言和插件,适用于多种嵌入式开发平台。以下是Eclipse的使用说明和操作步骤: 步骤1:创建新工程 单击“File”菜单,选择“New”→“Project”选项,选择工程类型和开发平台。

    2024年02月02日
    浏览(101)
  • Unity开发3 坐标系及工具、快捷键操作

    左手坐标系:X→ Y↑ Z朝向屏幕内部 右手坐标系:X→ Y↑ Z朝向屏幕外部 Unity使用的是左手坐标系 世界坐标系就像经纬度一样,游戏对象的“位置”即相对于世界坐标系。 世界坐标系原点为(0,0,0)。 可将一游戏对象拖拽至另一游戏对象下生成父子关系。 生成父子关系后,

    2023年04月17日
    浏览(46)
  • 中文编程开发语言工具构件说明:屏幕截取构件的编程操作

    屏幕截取 用于截取指定区域的图像。 图    标: 构件类型:不可视 重要属性 l        截取类型 枚举型,设置在截取屏幕时的截取类型。包括:全屏幕、指定区域、活动窗口三种。当全屏幕截取时相当于执行了硬拷屏(PrintScreenSysRq键)功能;指定区域截取则是通过矩形

    2024年02月07日
    浏览(57)
  • 微信小程序开发者工具真机调试和预览连接本地服务器

    网上参考了很多方法只有这个方法能解决本地服务器在微信开发者工具预览或者真机调试的连接,话不多说看图。 win+R,CMD输入ipconfig查看本地电脑服务器地址 微信开发者工具里设置代理 js代码的地址对应IPv4 地址 最后你的wifi网络要和手机上的网络一致,不然真机调试或者预

    2024年02月11日
    浏览(103)
  • 中文编程开发语言工具编程案例:计时计费管理系统软件连接灯控器编程案例

    计时计费管理系统软件连接灯控器 计时计费管理系统软件连接灯控器编程案例

    2024年02月07日
    浏览(55)
  • 【Linux操作系统】探秘Linux奥秘:Linux开发工具的解密与实战

    🌈个人主页: Sarapines Programmer 🔥 系列专栏: 《操作系统实验室》 🔖诗赋清音:柳垂轻絮拂人衣,心随风舞梦飞。 山川湖海皆可涉,勇者征途逐星辉。 目录 🪐1 初识Linux OS 🪐2 Linux开发工具的解密与实战 🌍1. 实验目的 🌍2. 实验准备 🌍3. 实验内容 🌍4. 实验心得 📝总

    2024年02月03日
    浏览(61)
  • F12-开发者工具常用操作与使用说明之网络network

    开发十分钟,调试三小时。 在开发过程中,我们希望是用更多的时间来创造,而不是被各种各样的问题所困扰。 尤其是在跟后端对接口的时候,是否能够快速的发现问题,就显得很重要。 network面板中提供了哪些功能,能否让我们解脱一点呢? 这是查看请求启动器的调用链

    2024年02月07日
    浏览(39)
  • 【AUTOSAR】AUTOSAR开发工具链(五)----polyspace-bug-finder 简单操作说明

    1、打开polyspace-bug-finder,新建工程文件:File      New Project,命名,选择保存路径,然后点击Next。   2、找到需要检测的文件,然后点击“Add Source Files”     Finish   3、在Configuration左边窗口点击“Bug Finder Analysis”选项,然后将“default”改为“all”,其他选项采用默认值

    2024年02月11日
    浏览(46)
  • 第三方开发工具—PyCharm(安装、使用、汉化)超详细、图超多、注脚特多(Windows操作系统)

    目录 前言 一、PyCharm安装 安装地址 安装步骤 二、第一次启动 三、使用(开始编程) 1.第一个文件夹 2.第一个程序 3.运行第一个程序 四、汉化插件 五、总结 做任何事情时,舒适的环境是非常重要的。一个好的软件开发环境能给人带来不一样的体验。 先让我们来看看PyCharm的

    2024年02月03日
    浏览(80)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包