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

本文共 2880 字,大约阅读时间需要 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/

    你可能感兴趣的文章
    MS UC 2013-0-Prepare Tool
    查看>>
    MSBuild 教程(2)
    查看>>
    msbuild发布web应用程序
    查看>>
    MSB与LSB
    查看>>
    MSCRM调用外部JS文件
    查看>>
    MSCRM调用外部JS文件
    查看>>
    MSEdgeDriver (Chromium) 不适用于版本 >= 79.0.313 (Canary)
    查看>>
    MsEdgeTTS开源项目使用教程
    查看>>
    msf
    查看>>
    MSSQL数据库查询优化(一)
    查看>>
    MSSQL数据库迁移到Oracle(二)
    查看>>
    MSSQL日期格式转换函数(使用CONVERT)
    查看>>
    MSTP多生成树协议(第二课)
    查看>>
    MSTP是什么?有哪些专有名词?
    查看>>
    Mstsc 远程桌面链接 And 网络映射
    查看>>
    Myeclipse常用快捷键
    查看>>
    MyEclipse更改项目名web发布名字不改问题
    查看>>
    MyEclipse用(JDBC)连接SQL出现的问题~
    查看>>
    mt-datetime-picker type="date" 时间格式 bug
    查看>>
    myeclipse的新建severlet不见解决方法
    查看>>