阿里云 Elasticsearch 服务-Elastic Stack 实战手册

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 本文将基于阿里云 Elasticsearch,通过快速创建、访问实例,并使用 Restful API,完成创建索引、创建文档、插入数据、搜索数据、删除索引等操作,从而体验 Cloud 云服务。

970X90.png

· 更多精彩内容,请下载阅读全本《Elastic Stack实战手册》

· 加入创作人行列,一起交流碰撞,参与技术圈年度盛事吧

编辑:大禹

本文将基于阿里云 Elasticsearch,通过快速创建、访问实例,并使用 RESTful API,完成创建索引、创建文档、插入数据、搜索数据、删除索引等操作,从而体验 Cloud 云服务。

阿里云Elasticsearch兼容开源ELK功能,提供免运维全托管服务的弹性云搜索与分析引擎,致力于数据库加速、数据分析、信息检索、智能运维监控等场景服务;独有的云原生高性能内核、达摩院NLP分词、向量检索、智能运维、免费X-Pack高级商业特性等能力,全面提升企业应用效率,降低成本。

前提条件

  • 注册阿里云账号。

具体操作,请参见账号注册:https://account.aliyun.com/register/register.html

  • 创建专有网络和虚拟交换机。

具体操作,请参见搭建IPv4专有网络:https://help.aliyun.com/document_detail/65430.htm#task-1512598

  • 完成规格容量评估。

具体操作,请参见规格容量评估:https://help.aliyun.com/document_detail/72660.htm#concept-dq4-bmk-zgb

实践背景

某金融服务企业通过线上平台管理理财项目,之前使用传统数据库为客户提供理财产品的搜索功能。由于收益信用良好,得到了不少客户的青睐,但随之而来的是业务体系逐步扩大,客户信息也逐步增加,使得传统型数据库的缺陷越来越明显。为了改善搜索响应迟缓、精准性无法保障、数据服务设备性能降低等状况,该企业引入了阿里云 Elasticsearch 产品,为用户提供理财产品的搜索功能。阿里云 Elasticsearch 有效地解决了之前传统数据库存在的问题,同时提升了客户满意度。本文以此场景为例,为您介绍如何使用阿里云 Elasticsearch 搭建集群和搜索数据。

本场景假设该企业的理财产品信息如下所示。

{
"products":[
{"productName":"大健康天天理财","annual_rate":"3.2200%","describe":"180天定期理财,最低20000起投,收益稳定,可以自助选择消息推送"}
{"productName":"西部通宝","annual_rate":"3.1100%","describe":"90天定投产品,最低10000起投,每天收益到账消息推送"}
{"productName":"安详畜牧产业","annual_rate":"3.3500%","describe":"270天定投产品,最低40000起投,每天收益立即到账消息推送"}
{"productName":"5G设备采购月月盈","annual_rate":"3.1200%","describe":"90天定投产品,最低12000起投,每天收益到账消息推送"}
{"productName":"新能源动力理财","annual rate":"3.0100%","describe":"30天定投产品推荐,最低8000起投,每天收益会消息推送"}
{"productName":"微贷赚","annual_rate":"2.7500%","describe":"热门短期产品,3天短期,无须任何手续费用,最低500起投,通过短信提示获取收益消息"}
]
}

步骤一:创建实例

  1. 前往实例创建页面:https://www.aliyun.com/product/bigdata/product/elasticsearch
  2. 在开通页面的前四个配置页面,完成实例启动配置。本教程使用的配置如下,未提及的配置保持默认。
配置页面 配置项 示例 说明
基础配置 付费模式 按量付费 在前期程序研发或功能测试期间,建议购买按量付费类型的实例测试。说明 开通包年包月类型的实例可以享受优惠条件。
选择服务 通用商业版,7.10 阿里云 Elasticsearch 通用商业版包含全部 X-pack 高级特性,致力于数据分析和数据搜索等场景服务。
集群配置 地域和可用区 阿里云 Elasticsearch 支持的地域和可用区,请参见地域和可用区:https://help.aliyun.com/document_detail/97672.htm#section-iaw-kz6-ha2注意 所选可用区下必须存在专有网络和虚拟交换机。
可用区数量 单可用区
实例规格 数据节点: 新用户可享受 2C4G 的首月 30 天免费试用
网络及系统配置 网络类型 专有网络 默认为专有网络,不可更改。
专有网络 tf-testAcccn-hangzhou3274,vpc-bp16k1dvzxtmagcva** 选择对应区域下的专有网络。
虚拟交换机 tf-testAcccn-hangzhou3274 / vsw-bp1k4ec6s7sjdbudw** 只能显示所选专有网络中,与实例在相同可用区下的虚拟交换机。
登录名 elastic 默认为 elastic,不可更改。
登录密码 自定义密码 请记录该配置,在登录 Kibana控制台时,需要输入该密码。
场景初始化配置 通用场景 选择后,对应模板的配置会自动应用到集群中。
  1. 单击下一步:确认订单,然后预览实例配置。

本教程的实例配置预览如下图。

1.png

  1. 勾选服务协议,单击立即购买。
  2. 提示开通成功后,单击管理控制台,进入阿里云 Elasticsearch 的控制台概览页面。
  3. 在左侧导航栏,单击 Elasticsearch 实例。
  4. 在顶部菜单栏,选择资源和地域,然后在实例列表中查看创建成功的阿里云 Elasticsearch 实例。

步骤二:访问实例

等待实例状态变为正常,即可执行以下步骤,通过 Kibana 访问实例。

您也可以通过 curl 命令和客户端方式访问实例。

具体操作,请参见快速访问与配置: https://help.aliyun.com/document_detail/134862.htm?spm=a2c4g.11186623.2.21.33de9184Q0R30l#section-dy2-a9s-1ym
  1. 在实例列表中,单击目标实例ID。
  2. 在左侧导航栏,单击可视化控制。
  3. 在 Kibana 区域中,单击进入控制台。
  4. 在登录页面输入账号和密码,单击登录。账号为 elastic,密码为您创建实例时设置的密码。
如果忘记可重置,重置密码的具体操作和注意事项,请参见重置实例访问密码: https://help.aliyun.com/document_detail/159883.htm#task-2458093
  1. 在登录成功页面,单击 Explore on my own。

2.png

  1. 在左侧导航栏,单击 Dev Tools(开发工具),再单击 Go to work。
  2. 在 Console 中,执行如下命令访问 Elasticsearch 实例。
GET /

3.png

访问成功后,结果如下。

{
  "name" : "tgeAvZe",
  "cluster_name" : "es-cn-nif1z64qj003g****",
  "cluster_uuid" : "IZmmd9IGTmKzqiZiyz****",
  "version" : {
    "number" : "6.7.0",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "c9c0c3a",
    "build_date" : "2020-12-01T08:00:27.556078Z",
    "build_snapshot" : false,
    "lucene_version" : "7.7.0",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}

步骤三:创建索引

创建一个名称为 product_info 的索引:

PUT /product_info
{
  "settings": {
    "number_of_shards": 5,
    "number_of_replicas": 1
  },
  "mappings": {
      "properties": {
        "productName": {
          "type": "text",
          "analyzer": "ik_smart"
        },
        "annual_rate":{
          "type":"keyword"
        },
        "describe": {
          "type": "text",
          "analyzer": "ik_smart"
        }
    }
  }
}

以上示例创建了一个名称为 product_info 的索引。索引的类型为 products(7.0及以上版本为_doc),并包含了 productName、annual_rate 和 describe 字段。

创建成功后,返回结果如下。

{
  "acknowledged" : true,
  "shards_acknowledged" : true,
  "index" : "product_info"
}

步骤四:创建文档并插入数据

使用 _bulk API,批量插入数据。

POST /product_info/_doc/_bulk
{"index":{}}
{"productName":"大健康天天理财","annual_rate":"3.2200%","describe":"180天定期理财,最低20000起投,收益稳定,可以自助选择消息推送"}
{"index":{}}
{"productName":"西部通宝","annual_rate":"3.1100%","describe":"90天定投产品,最低10000起投,每天收益到账消息推送"}
{"index":{}}
{"productName":"安详畜牧产业","annual_rate":"3.3500%","describe":"270天定投产品,最低40000起投,每天收益立即到账消息推送"}
{"index":{}}
{"productName":"5G设备采购月月盈","annual_rate":"3.1200%","describe":"90天定投产品,最低12000起投,每天收益到账消息推送"}
{"index":{}}
{"productName":"新能源动力理财","annual rate":"3.0100%","describe":"30天定投产品推荐,最低8000起投,每天收益会消息推送"}
{"index":{}}
{"productName":"微贷赚","annual_rate":"2.7500%","describe":"热门短期产品,3天短期,无须任何手续费用,最低500起投,通过短信提示获取收益消息"}

如果返回显示"errors" : false,说明数据插入成功。

4.png

步骤五:搜索数据

全文搜索搜索描述内容包含每天收益到账消息推送的所有产品。

GET /product_info/_doc/_search
{
  "query": {
    "match": {
      "describe": "每天收益到账消息推送"
    }
  }
}

搜索成功后,返回结果如下。

{
  "took" : 21,
  "timed_out" : false,
  "_shards" : {
    "total" : 5,
    "successful" : 5,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : 6,
    "max_score" : 1.3968885,
    "hits" : [
      {
        "_index" : "product_info",
        "_type" : "products",
        "_id" : "WLvWYXAB8Rql5AUxLqUU",
        "_score" : 1.3968885,
        "_source" : {
          "productName" : "西部通宝",
          "annual_rate" : "3.1100%",
          "describe" : "90天定投产品,最低10000起投,每天收益到账消息推送"
        }
      },
      {
        "_index" : "product_info",
        "_type" : "products",
        "_id" : "WrvWYXAB8Rql5AUxLqUU",
        "_score" : 1.3968885,
        "_source" : {
          "productName" : "5G设备采购月月盈",
          "annual_rate" : "3.1200%",
          "describe" : "90天定投产品,最低12000起投,每天收益到账消息推送"
        }
      },
      {
        "_index" : "product_info",
        "_type" : "products",
        "_id" : "WbvWYXAB8Rql5AUxLqUU",
        "_score" : 1.3547361,
        "_source" : {
          "productName" : "安详畜牧产业",
          "annual_rate" : "3.3500%",
          "describe" : "270天定投产品,最低40000起投,每天收益立即到账消息推送"
        }
      },
      {
        "_index" : "product_info",
        "_type" : "products",
        "_id" : "W7vWYXAB8Rql5AUxLqUU",
        "_score" : 1.1507283,
        "_source" : {
          "productName" : "新能源动力理财",
          "annual rate" : "3.0100%",
          "describe" : "30天定投产品推荐,最低8000起投,每天收益会消息推送"
        }
      },
      {
        "_index" : "product_info",
        "_type" : "products",
        "_id" : "XLvWYXAB8Rql5AUxLqUU",
        "_score" : 0.5753642,
        "_source" : {
          "productName" : "微贷赚",
          "annual_rate" : "2.7500%",
          "describe" : "热门短期产品,3天短期,无须任何手续费用,最低500起投,通过短信提示获取收益消息"
        }
      },
      {
        "_index" : "product_info",
        "_type" : "products",
        "_id" : "V7vWYXAB8Rql5AUxLqUU",
        "_score" : 0.31854028,
        "_source" : {
          "productName" : "大健康天天理财",
          "annual_rate" : "3.2200%",
          "describe" : "180天定期理财,最低20000起投,收益稳定,可以自助选择消息推送"
        }
      }
    ]
  }
}

阿里云 Elasticsearch 支持通过分词器搜索数据,同时也支持评分排序。在上文的返回结果中,前两条商品信息中都出现了每天收益到账消息推送,后两条商品信息中只出现了关键词消息推送,所以越靠前的搜索结果的匹配度越高,分数也越高。

  • 按查询条件搜索

搜索年化率在3.0000%到3.1300%之间的产品。

GET /product_info/_doc/_search
{
  "query": {
    "range": {
      "annual_rate": {
        "gte": "3.0000%",
        "lte": "3.1300%"
      }
    }
  }
}

执行成功后,返回结果如下。

{
  "took" : 10,
  "timed_out" : false,
  "_shards" : {
    "total" : 5,
    "successful" : 5,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : 2,
    "max_score" : 1.0,
    "hits" : [
      {
        "_index" : "product_info",
        "_type" : "products",
        "_id" : "WLvWYXAB8Rql5AUxLqUU",
        "_score" : 1.0,
        "_source" : {
          "productName" : "西部通宝",
          "annual_rate" : "3.1100%",
          "describe" : "90天定投产品,最低10000起投,每天收益到账消息推送"
        }
      },
      {
        "_index" : "product_info",
        "_type" : "products",
        "_id" : "WrvWYXAB8Rql5AUxLqUU",
        "_score" : 1.0,
        "_source" : {
          "productName" : "5G设备采购月月盈",
          "annual_rate" : "3.1200%",
          "describe" : "90天定投产品,最低12000起投,每天收益到账消息推送"
        }
      }
    ]
  }
}

Elasticsearch 会根据条件搜索到符合预期的产品,同时以降序排列展示

更多搜索方式,请参见 Query DSLhttps://www.elastic.co/guide/en/elasticsearch/reference/6.7/query-dsl.html?spm=a2c4g.11186623.2.27.33de9184S7oAZi

步骤六:删除索引(可选)

了解了阿里云Elasticsearch的使用方法后,您可以执行如下命令,删除对应索引,避免浪费资源。

索引删除后不可恢复,请谨慎操作。
DELETE /product_info

删除成功后,返回如下结果。

{
  "acknowledged" : true
}

步骤七:释放实例(可选)

如果您不再需要实例,可以将其释放。释放后,实例停止计费,数据不可恢复。释放操作只适用于按量付费实例。

实例释放后数据无法恢复,建议您在释放之前先备份数据。具体操作,请参见 数据备份概述: https://help.aliyun.com/document_detail/106553.htm?spm=a2c4g.11186623.2.28.33de9184S7oAZi#concept-2038454
  1. 在实例列表中,单击操作列下的更多 > 释放实例。

5.png

  1. 在弹出的对话框中,单击确认。
相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
1月前
|
自然语言处理 大数据 应用服务中间件
大数据-172 Elasticsearch 索引操作 与 IK 分词器 自定义停用词 Nginx 服务
大数据-172 Elasticsearch 索引操作 与 IK 分词器 自定义停用词 Nginx 服务
64 5
|
3月前
|
存储 API 数据库
检索服务elasticsearch索引(Index)
【8月更文挑战第23天】
66 6
|
3月前
|
存储 负载均衡 监控
检索服务elasticsearch节点(Node)
【8月更文挑战第23天】
59 5
|
3月前
|
存储 监控 负载均衡
检索服务elasticsearch集群(Cluster)
【8月更文挑战第23天】
65 3
|
30天前
|
存储 人工智能 自然语言处理
Elasticsearch Inference API增加对阿里云AI的支持
本文将介绍如何在 Elasticsearch 中设置和使用阿里云的文本生成、重排序、稀疏向量和稠密向量服务,提升搜索相关性。
67 14
Elasticsearch Inference API增加对阿里云AI的支持
|
1月前
|
JSON Java 网络架构
elasticsearch学习四:使用springboot整合 rest 进行搭建elasticsearch服务
这篇文章介绍了如何使用Spring Boot整合REST方式来搭建和操作Elasticsearch服务。
129 4
elasticsearch学习四:使用springboot整合 rest 进行搭建elasticsearch服务
|
1月前
|
自然语言处理 Java Maven
elasticsearch学习二:使用springboot整合TransportClient 进行搭建elasticsearch服务
这篇博客介绍了如何使用Spring Boot整合TransportClient搭建Elasticsearch服务,包括项目创建、Maven依赖、业务代码和测试示例。
103 0
elasticsearch学习二:使用springboot整合TransportClient 进行搭建elasticsearch服务
|
3月前
|
SQL 存储 自然语言处理
检索服务elasticsearch全文搜索
【8月更文挑战第22天】
58 3
|
15天前
|
存储 安全 数据管理
如何在 Rocky Linux 8 上安装和配置 Elasticsearch
本文详细介绍了在 Rocky Linux 8 上安装和配置 Elasticsearch 的步骤,包括添加仓库、安装 Elasticsearch、配置文件修改、设置内存和文件描述符、启动和验证 Elasticsearch,以及常见问题的解决方法。通过这些步骤,你可以快速搭建起这个强大的分布式搜索和分析引擎。
32 5
|
1月前
|
存储 JSON Java
elasticsearch学习一:了解 ES,版本之间的对应。安装elasticsearch,kibana,head插件、elasticsearch-ik分词器。
这篇文章是关于Elasticsearch的学习指南,包括了解Elasticsearch、版本对应、安装运行Elasticsearch和Kibana、安装head插件和elasticsearch-ik分词器的步骤。
141 0
elasticsearch学习一:了解 ES,版本之间的对应。安装elasticsearch,kibana,head插件、elasticsearch-ik分词器。

相关产品

  • 检索分析服务 Elasticsearch版
  • 下一篇
    无影云桌面