
編輯:大禹
本文将基于阿裡雲 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
- 在執行個體清單中,單擊操作列下的更多 > 釋放執行個體。
- 在彈出的對話框中,單擊确認。