博客
关于我
ElasticSearch简单入门介绍
阅读量:191 次
发布时间:2019-02-28

本文共 2820 字,大约阅读时间需要 9 分钟。

初识 Elasticsearch

Elasticsearch 是一个分布式、RESTful 式的搜索和数据分析引擎,简称 ES。在国内也被称为 ES。它是基于 Lucene 开发的全文检索引擎,提供了更高级的功能和接口。虽然 Lucene 本身是一个强大的全文检索库,但直接使用 Lucene 可能会比较复杂。Elasticsearch 在 Lucene 的基础上扩展,提供了更高级的搜索和数据分析功能。

Elasticsearch 的功能与适用场景

Elasticsearch 的主要功能包括:

  • 分布式搜索引擎和数据分析引擎:支持将海量数据分布式存储和检索,能够处理大规模数据。
  • 全文检索、结构化检索和数据分析:支持对文本、结构化数据等进行检索和分析。
  • 对海量数据进行近实时处理:能够快速响应和分析大规模数据。
  • Elasticsearch 的底层是 Lucene,但它提供了 RESTful API,用户可以通过简单的 HTTP 请求来操作,无需直接调用 Lucene 的低层接口。相比单机的 Lucene,Elasticsearch 支持分布式架构,能够处理更大的数据量和更复杂的查询需求。

    Elasticsearch 的安装

    安装 Elasticsearch 相对简单。以下是基于 macOS 的安装步骤:

  • 访问官方下载页面:https://www.elastic.co/cn/downloads/elasticsearch
  • 下载对应平台的压缩包(例如:elasticsearch-7.9.0-darwin-x86_64.tar.gz)
  • 解压压缩包:
    tar -zxvf elasticsearch-7.9.0-darwin-x86_64.tar.gz /usr/local/Cellar
  • 启动 Elasticsearch:
    cd /usr/local/Cellar/elasticsearch-7.9.0/darwin-x86_64/bin./elasticsearch
  • 访问默认端口 9200,访问 http://localhost:9200/ 即可。
  • Kibana 的安装

    Kibana 是 Elasticsearch 的可视化工具,支持通过图表和可视化界面操作 Elasticsearch 数据。安装步骤类似于 Elasticsearch:

  • 访问下载页面:https://www.elastic.co/cn/downloads/kibana
  • 下载对应平台的压缩包(例如:kibana-7.9.1-darwin-x86_64.tar.gz)
  • 解压压缩包:
    tar -zxvf kibana-7.9.1-darwin-x86_64.tar.gz
  • 启动 Kibana:
    cd /usr/local/Cellar/kibana-7.9.1/darwin-x86_64/bin./kibana
  • 访问默认端口 5601,访问 http://localhost:5601 即可。
  • Elasticsearch 的存储结构

    Elasticsearch 的存储结构与传统数据库(如 MySQL)有所不同:

    Elasticsearch MySQL
    Index (索引) Database (数据库)
    Document (文档) Row (行)
    Field (字段) Column (字段)
    Mapping (映射) Table Structure (表结构)

    Index(索引)

    索引相当于 MySQL 的数据库,代表一组文档数据的集合。

    Document(文档)

    文档是 Elasticsearch 存储的基本单位,通常以 JSON 格式存储。每个文档可以包含多个字段,字段类型包括数值类型、日期类型、布尔类型、Text(支持全文搜索)、Keyword(精确匹配)、Geo(地理信息)。

    Mapping(映射)

    Mapping 定义了索引中文档的结构和字段类型。Elasticsearch 会根据文档数据自动推断映射规则,但在实际应用中,建议手动定义映射规则以确保字段类型准确。

    Elasticsearch 的查询

    Elasticsearch 的查询语法基于 RESTful API,主要包括以下参数:

  • 查询语句
    GET /{index}/_search{  "size": 10,  "from": 0,  "_source": ["field1", "field2"],  "query": {    "match": {      "field1": "text"    }  }}
  • 匹配单个字段
    GET /{index}/_search{  "query": {    "term": {      "field1": "value1"    }  }}
  • 多值匹配
    GET /{index}/_search{  "query": {    "terms": {      "field1": ["value1", "value2"]    }  }}
  • 范围查询
    GET /{index}/_search{  "query": {    "range": {      "field1": {        "gte": 100,        "lte": 200      }    }  }}
  • 布尔查询
    GET /{index}/_search{  "query": {    "bool": {      "must": ["term1", "term2"],      "should": ["term3"]    }  }}
  • 排序

    Elasticsearch 支持根据查询结果的指定字段排序:

    GET /{index}/_search{  "sort": [    {"field1": "asc"},    {"field2": "desc"}  ]}

    聚合查询

    Elasticsearch 的聚合查询类似于 SQL 的 GROUP BY 和聚合函数,常用于统计分析:

    GET /{index}/_search{  "size": 0,  "aggs": {    "type_count": {      "terms": {        "field": "type"      }    }  }}

    常用的聚合函数包括 value_count(统计文档总数)、cardinality(去重统计)、avg(求平均值)、sum(求和)、max(求最大值)、min(求最小值)等。

    总结

    Elasticsearch 是一个强大且灵活的搜索和数据分析引擎,适用于处理海量数据的高性能需求。通过简单的 HTTP 接口和丰富的功能,Elasticsearch 减少了对技术细节的依赖,使开发者能够快速上手并实现高效的数据处理任务。

    转载地址:http://awln.baihongyu.com/

    你可能感兴趣的文章
    Pandas中文官档~基础用法5
    查看>>
    Pandas中文官档~基础用法6
    查看>>
    Pandas中的GROUP BY AND SUM不丢失列
    查看>>
    Pandas之iloc、loc
    查看>>
    pandas交换两列
    查看>>
    pandas介绍-ChatGPT4o作答
    查看>>
    pandas去除Nan值
    查看>>
    pandas实战:电商平台用户分析
    查看>>
    Pandas库函数
    查看>>
    Pandas库常用方法、函数集合
    查看>>
    pandas打乱数据的顺序
    查看>>
    pandas指定列数据归一化
    查看>>
    pandas改变一列值(通过apply)
    查看>>
    Pandas数据分析的环境准备
    查看>>
    Pandas数据可视化怎么做?用实战案例告诉你!
    查看>>
    Pandas数据处理与分析教程:从基础到实战
    查看>>
    Pandas数据结构之DataFrame常见操作
    查看>>
    pandas整合多份csv文件
    查看>>
    pandas某一列转数组list
    查看>>
    Pandas模块,我觉得掌握这些就够用了!
    查看>>