【elastic search】下载安装、使用教程

目录

1.下载安装

1.1.ES&Kibana

1.2.分词器

2.操作

2.1.索引操作

2.1.1.索引的新增、删除、查找

2.1.2.数据类型

2.1.3.结构化

2.2.文档操作

2.2.1.文档的增、删、改

2.2.2.文档的查询

2.2.3.聚合操作


1.下载安装

1.1.ES&Kibana

Kibana是一个开源的数据可视化和管理工具,专门为Elasticsearch设计。Elasticsearch是一个强大的搜索和分析引擎,而Kibana提供了一个友好的界面,使用户能够直观地与Elasticsearch索引中的数据进行交互。

ES的相关核心概念请移步作者另一篇文章:

https://bugman.blog.csdn.net/article/details/135342256?spm=1001.2014.3001.5502

ESKibanna
下载地址https://www.elastic.co/cn/downloads/past-releases#elasticsearchhttps://www.elastic.co/cn/downloads/past-releases/
的端口号92005601

备注:ES和kibanna最好版本完全对齐

进kibanna的图形化界面的dev tools来操作ES:

1.2.分词器

ES自带的分词器对中文不友好,分词效果不理想,所以一般涉及中文的场景的时候,都会用IK分词器来替换ES原生的分词器。

IK分词器下载地址:

https://github.com/medcl/elasticsearch-analysis-ik

备注:IK分词器的版本也好和ES版本对齐。

IK分词器对于ES来说就是一个插件,直接放到ES的plugin目录下解压缩即可。

备注:IK分词器要重启后才会生效。

2.操作

2.1.索引操作

2.1.1.索引的新增、删除、查找

新增:

PUT /person
{"settings": {"number_of_shards": 5//分片数, "number_of_replicas": 1//副本数}
}

查找:

GET /person

删除:

DELETE /person

2.1.2.数据类型

ES可以指定字段的数据类型。

字符型:

text,当前filed会被分词,支持全文检索。

keyword,当前filed不会被分词,不支持全文检索。

数值类型:

long、integer、short、byte、double、float、half_float、scaled_float

时间类型:

date,针对时间类型指定具体的格式

布尔类型:

boolean类型,表达true和false

二进制类型:

binary类型,暂时支持base64 encode string

范围类型:

  • long_range:同上

  • integer_range:同上

  • double_range:同上

  • float_range:同上

  • date_range:同上

  • ip_range:同上

经纬度类型:

  • geo_point:用来存储经纬度

ip类型:

  • ip,可以存储ipv4或者ipv6

除此以外还支持很多数据类型,详见官网。

2.1.3.结构化

所谓结构化就是指在创建索引的时候指定好字段的数据类型已经相关声明配置。

PUT /book
{"settings": {"number_of_shards": 5,//分片数"number_of_replicas": 1//副本数},"mappings": {"properties": {"name":{"type": "text",//支持分词"analyzer": "ik_max_word",//用ik分词器分词"index": true,"store": false},"author":{"type": "keyword"//不支持分词,直接整体作为关键字查询},"count":{"type": "long"},"on-sale":{"type": "text",//支持分词"analyzer": "ik_max_word"//使用ik分词器分词}}}
}

2.2.文档操作

2.2.1.文档的增、删、改

#新建文档(指定id为1)
POST /book/_doc/1
{
  "name":"数据库组成原理",
  "author":"查理士巴赫曼",
  "count":1,
  "on-sale":"yes"
}

#新建文档(没有指定id的时候会默认生成一个id)
POST /book/_doc
{
  "name":"计算机组成原理",
  "author":"冯诺依曼",
  "count":1,
  "on-sale":"yes"
}

#修改文档(部分)
POST /book/_update/1
{
  "doc":{
    "count":2
  }
}
#修改文档(全部,即覆盖)
PUT /book/_doc/1
{
  "name":"数据库原理",
  "author":"查理士·巴赫曼",
  "count":2,
  "on-sale":"no"
}
#删除单个
DELETE /book/_doc/1
 

2.2.2.文档的查询

文档的查询是在实际应用中用的最多的。查询就一定需要传查询参数,在ES中支持两种传参数的方式,一种是在url上传,一种是在请求体里面传。ES的查询常用到的内容有如下示例:

#查找所有
GET /book/_search
GET /book/_search
{
  "query": {
    "match_all": {
      
    } 
  }
}
#分页
GET /book/_search
{
  "query": {
    "match_all": {
      
    } 
  },
  "from": 0,
  "size": 1
}
#指定返回字段
GET /book/_search
{
  "_source":["name"],
  "query": {
    "match_all": {
      
    } 
  }
}
#排序
GET /book/_search
{
  "query": {
    "match_all": {
      
    } 
  },
  "sort": [
    {
      "count": {
        "order": "desc"
      }
    }
  ]
}
#多条件查询
GET /book/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "name": "计算机组成原理"
          }
        },
        {
          "match": {
            "author": "冯诺依曼"
          }
        }
      ]
    }
  }
}
#查找单个
GET /book/_doc/1
#条件查询
GET /book/_search?q=name:原理
GET /book/_search
{
  "query": {
    "match": {
      "name": "原理"
    }
  }
}
#数据过滤,可以用来实现范围查询
GET /book/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "name": "计算机组成原理"
          }
        },
        {
          "match": {
            "author": "冯诺依曼"
          }
        }
      ],
      "filter": [
        {
          "range": {
            "count": {
              "gte": 0
            }
          }
        }
      ]
    }
  }
}

#高亮显示

GET /book/_search
{
  "query": {
    "match": {
      "name": "原理"
    }
  },
  "highlight": {
    "fields": {
      "name": {}
    }
  }
}

2.2.3.聚合操作

ES支持一些聚合操作,常见的是用于统计中的:

返回一个字段中不同值的出现次数。

GET /your_index/_search
{
  "size": 0,
  "aggs": {
    "terms_agg": {
      "terms": {
        "field": "your_field_name"
      }
    }
  }
}

返回数值型字段的统计信息,如计数、最小值、最大值、平均值和总和。

GET /your_index/_search
{
  "size": 0,
  "aggs": {
    "stats_agg": {
      "stats": {
        "field": "your_numeric_field_name"
      }
    }
  }
}

根据指定的范围对数值型字段进行分组。

GET /your_index/_search
{
  "size": 0,
  "aggs": {
    "range_agg": {
      "range": {
        "field": "your_numeric_field_name",
        "ranges": [
          { "to": 50 },
          { "from": 50, "to": 100 },
          { "from": 100 }
        ]
      }
    }
  }
}
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/601180.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WPF中MVVM手动实现PropertyChanged和RelayCommand

背景:PropertyChanged和Command总是没有记住怎么写 PropertyChanged: public event PropertyChangedEventHandler? PropertyChanged; protected virtual void OnPropertyChanged([CallerMemberName] string propertyName null) {PropertyChanged?.In…

vue3中Element Plus全局组件配置中文的两种方案

Element是一款用于制作页面样式,设计页面结构的框架。相比于其他的几个框架,这个框架设计的更为人性化,对企业级框架VUE的集成也很高。 Element Plus 组件 默认 使用英语,如果你希望使用其他语言,你可以参考下面的两种…

OpenHarmony如何隐藏系统状态栏、导航栏

前言 OpenHarmony源码版本:4.0release 开发板:DAYU / rk3568 一、通过setWindowSystemBarEnable方法设置 当我们应用的Alility继承的是UIAbility时,可以onWindowStageCreate(windowStage: window.WindowStage)方法中实现如下操作&#xf…

【AI】搭建Windows Linux子系统(WSL2)CUDA环境

0.准备工作 Windows本机安装CUDA Driver 首先去下载页面下载驱动文件 点击Get CUDA Driver进入下载页面,我看下载页面跟普通驱动下载页面相同,感觉应该不是单独的驱动,只要之前显卡已经安装好了CUDA的驱动,就可以先省略这一步。…

spi_2024.1.2

spi.h #ifndef __SPI_H__ #define __SPI_H__#include "stm32mp1xx_gpio.h" #include "stm32mp1xx_rcc.h"#include"uart4.h" #include"key_it.h" // MOSI对应的引脚输出高低电平的信号PE14 #define MOSI_OUTPUT_H() do{GPIOE->O…

Linkage Mapper 工具参数详解——Climate Linkage Mapper

从以下链接中获取内容(识别二维码、填写问卷、获取联系方式) Linkage Mapper 报错_python error on **line 806** of lm_util.py in link-CSDN博客 此工具涉及参数非常多,后台需调用其他GIS平台(并且限定版本)&#x…

手写视频裁剪框

<!-- 截取框 --><divv-show"isShow"class"crop-box":style"{width: cropWidth px,height: cropHeight px,left: cropX px,top: cropY px,}"ref"cropBox"mousedown"startInteraction"><!-- 内容在这里 --…

【AI视野·今日CV 计算机视觉论文速览 第280期】Mon, 1 Jan 2024

AI视野今日CS.CV 计算机视觉论文速览 Mon, 1 Jan 2024 Totally 46 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Computer Vision Papers Learning Vision from Models Rivals Learning Vision from Data Authors Yonglong Tian, Lijie Fan, Kaifeng Chen, Dina K…

React-hook-form-mui(一):基本使用

前言 在项目开发中&#xff0c;我们选择了ReactMUI作为技术栈。在使用MUI构建form表单时&#xff0c;我们发现并没有与antd类似的表单验证功能&#xff0c;于是我们选择了MUI推荐使用的react-hook-form-mui库去进行验证。但是发现网上关于这个库的使用方法和demo比较少且比较简…

二、类与对象(四)

22 内部类 22.1 内部类的概念 如果一个类定义在另一个类的内部&#xff0c;这个类就叫做内部类。内部类是一个独立的类&#xff0c;它不属于外部类&#xff0c;更不能通过外部类的对象去访问内部类的成员&#xff0c;外部类对内部类没有任何优越的访问权限&#xff0c;也就是…

LINUX基础培训之开机启动过程

前言、本章学习目标 掌握系统启动、引导过程 了解grub.conf的参数设置 熟悉系统运行级别 了解加载内核过程 一、LINUX启动引导过程 Linux系统的启动过程并不是大家想象中的那么复杂&#xff0c;其过程可以分为5个阶段&#xff1a; 1.开机自检 服务器主机开机以后&#xf…

5.SolidWorks的学习心法

学习计算机辅助设计软件&#xff08;CAD-Computer Aided Design&#xff09;的很重要的一点&#xff0c;就是要想清楚计算机辅助设计软件的本质和作用是什么。这一点非常重要&#xff0c;如果没有想清楚这一点&#xff0c;总会感觉得没有软件就做不了设计了&#xff0c;甚至是没…

LeetCode 2610. 转换二维数组【数组,哈希表】1373

本文属于「征服LeetCode」系列文章之一&#xff0c;这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁&#xff0c;本系列将至少持续到刷完所有无锁题之日为止&#xff1b;由于LeetCode还在不断地创建新题&#xff0c;本系列的终止日期可能是永远。在这一系列刷题文章…

Spring Beans的魔法门:解密多种配置方式【beans 四】

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 Spring Beans的魔法门&#xff1a;解密多种配置方式【beans 四】 前言XML配置方式1. 声明和配置Bean&#xff1a;2. 构造函数注入&#xff1a;3. 导入其他配置文件&#xff1a; java注解方式1. 使用Co…

算法训练营Day35

#Java #动态规划 开源学习资料 Feeling and experiences&#xff1a; 不同路径&#xff1a;力扣题目链接 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右…

MyBatisPlus学习三:Service接口、代码生成器

学习教程 黑马程序员最新MybatisPlus全套视频教程&#xff0c;4小时快速精通mybatis-plus框架 Service接口 简介 在MyBatis-Plus框架中&#xff0c;Service接口的作用是为实体类提供一系列的通用CRUD&#xff08;增删改查&#xff09;操作方法。通常情况下&#xff0c;Servi…

PyTorch 入门学习数据操作之创建

简介 在深度学习中&#xff0c;我们通常会频繁地对数据进行操作&#xff1b;要操作一般就需要先创建。 官方介绍 The torch package contains data structures for multi-dimensional tensors and defines mathematical operations over these tensors. Additionally, it pr…

k8s-二进制部署

ETCD master节点 制作证书 1、下载证书工具 [rootmaster ~]# wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 --no-check-certificate [rootmaster ~]# wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64 --no-check-certificate [rootmaster ~]# wget https://…

SpringMVC通用后台管理系统源码

整体的SSM后台管理框架功能已经初具雏形&#xff0c;前端界面风格采用了结构简单、 性能优良、页面美观大的Layui页面展示框架 数据库支持了SQLserver,只需修改配置文件即可实现数据库之间的转换。 系统工具中加入了定时任务管理和cron生成器&#xff0c;轻松实现系统调度问…

【源码解析】Apache RocketMQ发送消息源码

send message源码解析 引入 send message方法作为我们经常使用的方法&#xff0c;平时我们很难去关注他底层到底做了什么。大部分人只知道通过send message方法可以将消息发送到broker&#xff0c;然后供消费者进行消费。其实不然&#xff0c;消息从客户端发送到broker&#x…