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

本文介绍了如何下载安装ES和Kibana,重点讲解了ES的基本概念,包括索引操作(如新增、删除和查找)、数据类型的选择、文档操作(如增删改查),以及如何使用IK分词器改进中文处理。同时涵盖了文档查询和聚合操作示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

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/downloads/kibana
的端口号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 }
        ]
      }
    }
  }
}
 

您好!下面是一个简单的 Kibana 使用教程: 1. 安装和配置 Kibana: - 下载并安装最新版本的 Kibana。 - 打开 `kibana.yml` 配置文件,并根据需要进行必要的配置,如 Elasticsearch 主机和端口等。 2. 启动 Kibana: - 运行 Kibana 的启动命令,通常是在终端中运行 `bin/kibana`。 3. 访问 Kibana 界面: - 在浏览器中输入 `http://localhost:5601`(默认端口)来访问 Kibana 界面。 4. 设置索引模式: - 在 Kibana 界面中,点击左侧导航栏的 "Management"。 - 在 "Kibana" 部分下,点击 "Index Patterns"。 - 点击 "Create index pattern"。 - 输入您想要创建的索引模式,并选择相应的字段。 - 点击 "Create index pattern" 完成索引模式设置。 5. 探索和可视化数据: - 在 Kibana 界面中,点击左侧导航栏的 "Discover"。 - 选择之前创建的索引模式。 - 在查询栏中输入查询条件。 - 在结果中查看数据,并使用各种功能(如排序、过滤等)进行数据探索。 6. 创建仪表板: - 在 Kibana 界面中,点击左侧导航栏的 "Dashboard"。 - 点击 "Create dashboard"。 - 在仪表板中,选择适当的可视化组件(如柱状图、饼图等)。 - 配置可视化组件的参数和数据源。 - 点击 "Save" 完成仪表板创建。 这只是一个简单的 Kibana 使用教程,您可以根据自己的需求进行更详细的学习和使用。希望对您有帮助!如果您有任何其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_BugMan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值