本文将基于阿里云 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起投,通过短信提示获取收益消息"} }步骤一:创建实例前往实例创建页面:https://www.aliyun.com/product/bigdata/product/elasticsearch在开通页面的前四个配置页面,完成实例启动配置。本教程使用的配置如下,未提及的配置保持默认。配置页面配置项示例说明基础配置付费模式按量付费在前期程序研发或功能测试期间,建议购买按量付费类型的实例测试。说明 开通包年包月类型的实例可以享受优惠条件。 选择服务通用商业版,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控制台时,需要输入该密码。 场景初始化配置通用场景选择后,对应模板的配置会自动应用到集群中。单击下一步:确认订单,然后预览实例配置。
本教程的实例配置预览如下图。
勾选服务协议,单击立即购买。提示开通成功后,单击管理控制台,进入阿里云 Elasticsearch 的控制台概览页面。在左侧导航栏,单击 Elasticsearch 实例。在顶部菜单栏,选择资源和地域,然后在实例列表中查看创建成功的阿里云 Elasticsearch 实例。步骤二:访问实例等待实例状态变为正常,即可执行以下步骤,通过 Kibana 访问实例。
您也可以通过 curl 命令和客户端方式访问实例。
具体操作,请参见快速访问与配置:https://help.aliyun.com/document_detail/134862.htm?spm=a2c4g.11186623.2.21.33de9184Q0R30l#section-dy2-a9s-1ym在实例列表中,单击目标实例ID。在左侧导航栏,单击可视化控制。在 Kibana 区域中,单击进入控制台。在登录页面输入账号和密码,单击登录。账号为 elastic,密码为您创建实例时设置的密码。如果忘记可重置,重置密码的具体操作和注意事项,请参见重置实例访问密码:https://help.aliyun.com/document_detail/159883.htm#task-2458093在登录成功页面,单击 Explore on my own。在左侧导航栏,单击 Dev Tools(开发工具),再单击 Go to work。在 Console 中,执行如下命令访问 Elasticsearch 实例。GET /
访问成功后,结果如下。
{ "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,说明数据插入成功。
步骤五:搜索数据全文搜索搜索描述内容包含每天收益到账消息推送的所有产品。
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 DSL:https://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在实例列表中,单击操作列下的更多 释放实例。在弹出的对话框中,单击确认。当下十分火热的大数据行业因为其数据量巨大的特点,传统的工具已经难以应付,因...
哪里租用 云服务器 最便宜?目前市面上有很多服务商提供租用 云服务器 ,便宜又...
Go 的 “玩家” 们看到这个题目可能会很疑惑——对于 JSON 而言,Go 原生库 enco...
从业务分析和AI项目,再到实行数字化转型,企业希望在一系列项目中采用海量数据...
在哪里查询裸金属服务器的价格? 预付费和后付费是什么意思?如何选择? 裸金属...
腾讯云安全中心会及时关注各种安全漏洞状况。在官方发布重要安全漏洞后,腾讯云...
在“微盟遭删库事件”发生一周后,微盟集团发布公告称,截至3月1日晚8点,在腾讯...
使用场景 在使用 mPaaS 框架过程中 有时需要复用模块。复用时需要按照使用 Modul...
怎样将文件上传到云服务器? 本地Windows主机通过MSTSC上传文件到Windows云服务...
买 香港虚拟主机 哪家好?比较好的 虚拟主机 ,要看机房情况,关注稳定和速度,...