快速入門
本文中含有需要您注意的重要提示信息,忽略該信息可能對您的業(yè)務造成影響,請務必仔細閱讀。
本文指引您快速創(chuàng)建一個阿里云Elasticsearch實例,并訪問該實例,使用Restful API完成創(chuàng)建索引、創(chuàng)建文檔并插入數(shù)據(jù)、搜索數(shù)據(jù)、刪除索引等操作。
前提條件
已注冊阿里云賬號。 具體操作,請參見賬號注冊。
場景說明
某金融服務企業(yè)通過線上平臺管理理財項目,之前使用傳統(tǒng)數(shù)據(jù)庫為客戶提供理財產(chǎn)品的搜索功能。由于收益信用良好,得到了不少客戶的青睞,但隨之而來的是業(yè)務體系逐步擴大,客戶信息也逐步增加,使得傳統(tǒng)型數(shù)據(jù)庫的缺陷越來越明顯。為了改善搜索響應遲緩、精準性無法保障、數(shù)據(jù)服務設備性能降低等狀況,該企業(yè)引入了阿里云Elasticsearch產(chǎn)品,為用戶提供理財產(chǎn)品的搜索功能。阿里云Elasticsearch有效地解決了之前傳統(tǒng)數(shù)據(jù)庫存在的問題,同時提升了客戶滿意度。本文以此場景為例,為您介紹如何使用阿里云Elasticsearch搭建集群和搜索數(shù)據(jù)。
本場景假設該企業(yè)的理財產(chǎn)品信息如下所示。
{
"products":[
{"productName":"理財產(chǎn)品A","annual_rate":"3.2200%","describe":"180天定期理財,最低20000起投,收益穩(wěn)定,可以自助選擇消息推送"}
{"productName":"理財產(chǎn)品B","annual_rate":"3.1100%","describe":"90天定投產(chǎn)品,最低10000起投,每天收益到賬消息推送"}
{"productName":"理財產(chǎn)品C","annual_rate":"3.3500%","describe":"270天定投產(chǎn)品,最低40000起投,每天收益立即到賬消息推送"}
{"productName":"理財產(chǎn)品D","annual_rate":"3.1200%","describe":"90天定投產(chǎn)品,最低12000起投,每天收益到賬消息推送"}
{"productName":"理財產(chǎn)品E","annual_rate":"3.0100%","describe":"30天定投產(chǎn)品推薦,最低8000起投,每天收益會消息推送"}
{"productName":"理財產(chǎn)品F","annual_rate":"2.7500%","describe":"熱門短期產(chǎn)品,3天短期,無須任何手續(xù)費用,最低500起投,通過短信提示獲取收益消息"}
]
}
操作流程
創(chuàng)建一個阿里云Elasticsearch實例。
等待實例狀態(tài)正常后,通過Kibana訪問阿里云Elasticsearch實例。
通過Restful API完成索引創(chuàng)建。
步驟四:創(chuàng)建文檔并插入數(shù)據(jù)
通過Restful API在文檔中批量插入數(shù)據(jù)。
通過Restful API完成全文數(shù)據(jù)搜索和按查詢條件搜索。
如果不再使用索引,可以通過命令刪除對應索引,避免浪費資源。
如果不再需要實例,可以釋放實例。實例釋放后數(shù)據(jù)無法恢復,建議釋放實例前先備份數(shù)據(jù)。
操作視頻
步驟一:創(chuàng)建實例
在購買頁面完成實例配置。
參數(shù)
說明
付費模式
包年包月:長期使用ES實例,建議選擇包年包月(一次性付費)。優(yōu)勢是比按量付費更實惠。
按量付費:短期使用ES實例,在程序研發(fā)或功能測試期間,建議選擇按量付費(按小時付費)。優(yōu)勢是可隨時釋放實例,停止計費。
您可以先創(chuàng)建按量付費的實例,確認實例符合要求后轉(zhuǎn)包年包月。
說明關于計費模式的更多信息,請參見計費方式。
開發(fā)測試型規(guī)格僅支持包年包月。購買開發(fā)測試型規(guī)格,請參見開發(fā)測試型規(guī)格說明。
地域和可用區(qū)
根據(jù)業(yè)務情況選擇地域,實例創(chuàng)建后地域不能更換:
資源部署地域和用戶的距離越近,網(wǎng)絡時延越低,訪問速度越快。
如果ES實例需要與其他云產(chǎn)品實現(xiàn)內(nèi)網(wǎng)互通,請將其部署在同一地域。
可用區(qū)數(shù)量
單可用區(qū)(默認):普通部署模式,適用于非關鍵任務型工作。
兩個可用區(qū):跨可用區(qū)容災部署模式,適用于生產(chǎn)型工作。
三個可用區(qū):高可用部署模式,適用于具有更高可用性要求的生產(chǎn)型工作。
說明部署多可用區(qū)時,不需要您手動選擇多個可用區(qū),系統(tǒng)會自動配置對應個數(shù)的可用區(qū)。
更多信息,請參見部署和使用跨可用區(qū)實例。
網(wǎng)絡類型
目前僅支持專有網(wǎng)絡。
專有網(wǎng)絡
選擇對應地域下的專有網(wǎng)絡。
說明如果ES實例需要與其他云產(chǎn)品實現(xiàn)內(nèi)網(wǎng)互通,建議將其部署在同一專有網(wǎng)絡下。
如果沒有符合業(yè)務需求的專有網(wǎng)絡,請先創(chuàng)建專有網(wǎng)絡。操作,請參見創(chuàng)建專有網(wǎng)絡和交換機。
虛擬交換機
列表中只顯示指定專有網(wǎng)絡下,與ES實例在同一可用區(qū)下的虛擬交換機。
說明如果沒有符合業(yè)務需求的虛擬交換機,請先創(chuàng)建交換機。操作,請參見創(chuàng)建專有網(wǎng)絡和交換機。
實例類型
內(nèi)核增強版:在開源基礎上提供深度優(yōu)化的AliES內(nèi)核引擎,提供10+增強特性。
通用商業(yè)版:100%兼容開源Elasticsearch,免費提供全部X-pack高級特性。
更多信息,請參見版本特性和AliES內(nèi)核增強版功能介紹。
Elasticsearch版本
內(nèi)核增強版:支持7.10、7.16和6.7版本。
通用商業(yè)版:支持8.13、8.9、8.5、7.7、6.8、6.3、5.6和5.5版本。
更多信息,請參見版本特性對比和Release Note。
說明不同版本支持的地域和可用區(qū)可能存在一定差異,具體請以購買頁為準。
內(nèi)核增強特性
內(nèi)核增強版實例支持高級增強功能和基礎增強功能。
基礎增強功能以插件形式免費提供,默認開啟。
高級增強功能提供云上特有的讀寫分離、存算分離架構(gòu),支持按需開啟,開啟后可能產(chǎn)生流量、存儲費用。
不同版本支持的功能特性不同,具體信息請參見AliES內(nèi)核增強版功能介紹。
說明開啟Openstore智能混合存儲功能時,會同時開啟Indexing Service索引構(gòu)建服務功能。
場景初始化配置
按照業(yè)務形態(tài)選擇匹配的場景。
說明創(chuàng)建實例后,您可以選擇性地修改該類場景支持的配置,使集群和索引配置達到最優(yōu),減少由于使用錯誤導致的集群異常和性能問題。具體操作,請參見修改場景化配置模板。
實例規(guī)格
單擊各節(jié)點區(qū)塊,根據(jù)業(yè)務需要配置各節(jié)點。
說明如果您不知道需要購買什么規(guī)格的節(jié)點,請先評估ES實例所需規(guī)格和容量,請參見規(guī)格容量評估。
各節(jié)點配置的詳細說明,請參見ES實例節(jié)點配置說明。
在區(qū)域右下角單擊重置默認配置,可將修改后的節(jié)點配置恢復為系統(tǒng)默認配置。
資源組
通過資源組可以對ES實例進行分組管理。詳細信息,請參見資源分組和授權(quán)。
實例名稱
如果實例名稱為空,系統(tǒng)會自動生成。實例創(chuàng)建后您可以在實例的基本信息頁修改實例名稱。
登錄名
默認賬號為elastic,不可更改。elastic賬號可以用來訪問ES實例和登錄Kibana控制臺。
說明修改elastic賬號的密碼,在密碼生效期間會影響服務訪問,因此不建議在業(yè)務中直接使用elastic賬號。如果程序中需要指定ES實例的賬號和密碼,建議在Kibana控制臺創(chuàng)建具有相應權(quán)限的角色和用戶。具體操作,請參見通過Elasticsearch X-Pack角色管理實現(xiàn)用戶權(quán)限管控。
登錄密碼
elastic賬號對應的密碼,不可為空。
購買時長
如果付費模式為包年包月,需要選擇購買時長。
建議您選中到期自動續(xù)費功能,避免資源到期實例停機或釋放,影響正常使用。
按月購買實例,自動續(xù)費周期為1個月。
按年購買實例,自動續(xù)費周期為1年。
單擊立即購買,進入確認訂單頁面,確認實例配置無誤后,選中服務協(xié)議,單擊立即開通。
在Elasticsearch實例頁面的頂部菜單欄,選擇創(chuàng)建實例的地域,在實例列表中查看已創(chuàng)建的ES實例。
實例創(chuàng)建后,需要一段時間才能生效。時間長短與您的集群規(guī)格、數(shù)據(jù)結(jié)構(gòu)和大小等相關,一般在小時級別。您可以在實例列表的狀態(tài)列,查看實例狀態(tài)。
步驟二:通過Kibana訪問實例
等待實例狀態(tài)變?yōu)檎#纯蓤?zhí)行以下步驟。
您也可以通過curl命令和客戶端方式訪問實例。具體操作,請參見訪問實例。
在Elasticsearch實例列表中,單擊目標實例ID。
在左側(cè)導航欄,選擇 。
可選:在Kibana區(qū)域,單擊修改配置,配置Kibana的公網(wǎng)訪問白名單,在IP白名單中加入您客戶端的IP地址。具體操作,請參見配置Kibana公網(wǎng)或私網(wǎng)訪問白名單。
首次從公網(wǎng)入口進入Kibana控制臺且公網(wǎng)訪問配置未修改時,系統(tǒng)會提示您修改配置,您可根據(jù)頁面提示進行修改。
返回集群管理頁面,在Kibana區(qū)域,單擊公網(wǎng)入口。
在登錄頁面輸入賬號和密碼,單擊登錄。
賬號為elastic,密碼為您創(chuàng)建實例時設置的密碼。如果忘記可重置密碼,具體操作請參見重置實例訪問密碼。
在登錄成功頁面,單擊自己瀏覽。
單擊Kibana頁面左上角的圖標,選擇Management > 開發(fā)工具(Dev Tools)。
在Console頁簽下,執(zhí)行如下命令訪問Elasticsearch實例。
GET /
訪問成功后,結(jié)果如下。
{ "name": "es-cn-wuf3pxg630005****-data-h-0", "cluster_name": "es-cn-wuf3pxg63000****", "cluster_uuid": "1kaVmF46T2yOapAA6M****", "version": { "number": "8.9.1", "build_flavor": "default", "build_type": "docker", "build_hash": "652eb44fa71049c1fcdc08c967ef9f751d98****", "build_date": "2023-08-18T06:51:36.666651565Z", "build_snapshot": false, "lucene_version": "9.7.0", "minimum_wire_compatibility_version": "7.17.0", "minimum_index_compatibility_version": "7.0.0" }, "tagline": "You Know, for Search" }
步驟三:創(chuàng)建索引
創(chuàng)建一個名稱為product_info的索引:
7.0及以上版本
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"
}
}
}
}
7.0以下版本
PUT /product_info
{
"settings": {
"number_of_shards": 5,
"number_of_replicas": 1
},
"mappings": {
"products": {
"properties": {
"productName": {
"type": "text",
"analyzer": "ik_smart"
},
"annual_rate":{
"type":"keyword"
},
"describe": {
"type": "text",
"analyzer": "ik_smart"
}
}
}
}
}
官方Elasticsearch 7.0及以上版本將移除映射中的type類型定義,之前版本會繼續(xù)支持。如果在7.0及以上版本中使用了type,會出現(xiàn)"type": "mapper_parsing_exception"
的錯誤提示。詳細信息及解決方案,請參見Removal of mapping types。
以上示例創(chuàng)建了一個名稱為product_info的索引。索引的類型為products(7.0及以上版本為_doc),并包含了productName、annual_rate和describe字段。
創(chuàng)建成功后,返回結(jié)果如下。
{
"acknowledged" : true,
"shards_acknowledged" : true,
"index" : "product_info"
}
步驟四:創(chuàng)建文檔并插入數(shù)據(jù)
使用_bulk API,批量插入數(shù)據(jù)。
7.0以下版本
POST /product_info/products/_bulk
{"index":{}}
{"productName":"理財產(chǎn)品A","annual_rate":"3.2200%","describe":"180天定期理財,最低20000起投,收益穩(wěn)定,可以自助選擇消息推送"}
{"index":{}}
{"productName":"理財產(chǎn)品B","annual_rate":"3.1100%","describe":"90天定投產(chǎn)品,最低10000起投,每天收益到賬消息推送"}
{"index":{}}
{"productName":"理財產(chǎn)品C","annual_rate":"3.3500%","describe":"270天定投產(chǎn)品,最低40000起投,每天收益立即到賬消息推送"}
{"index":{}}
{"productName":"理財產(chǎn)品D","annual_rate":"3.1200%","describe":"90天定投產(chǎn)品,最低12000起投,每天收益到賬消息推送"}
{"index":{}}
{"productName":"理財產(chǎn)品E","annual_rate":"3.0100%","describe":"30天定投產(chǎn)品推薦,最低8000起投,每天收益會消息推送"}
{"index":{}}
{"productName":"理財產(chǎn)品F","annual_rate":"2.7500%","describe":"熱門短期產(chǎn)品,3天短期,無須任何手續(xù)費用,最低500起投,通過短信提示獲取收益消息"}
7.x版本
POST /product_info/_doc/_bulk
{"index":{}}
{"productName":"理財產(chǎn)品A","annual_rate":"3.2200%","describe":"180天定期理財,最低20000起投,收益穩(wěn)定,可以自助選擇消息推送"}
{"index":{}}
{"productName":"理財產(chǎn)品B","annual_rate":"3.1100%","describe":"90天定投產(chǎn)品,最低10000起投,每天收益到賬消息推送"}
{"index":{}}
{"productName":"理財產(chǎn)品C","annual_rate":"3.3500%","describe":"270天定投產(chǎn)品,最低40000起投,每天收益立即到賬消息推送"}
{"index":{}}
{"productName":"理財產(chǎn)品D","annual_rate":"3.1200%","describe":"90天定投產(chǎn)品,最低12000起投,每天收益到賬消息推送"}
{"index":{}}
{"productName":"理財產(chǎn)品E","annual_rate":"3.0100%","describe":"30天定投產(chǎn)品推薦,最低8000起投,每天收益會消息推送"}
{"index":{}}
{"productName":"理財產(chǎn)品F","annual_rate":"2.7500%","describe":"熱門短期產(chǎn)品,3天短期,無須任何手續(xù)費用,最低500起投,通過短信提示獲取收益消息"}
8.x版本
POST /product_info/_bulk
{"index":{}}
{"productName":"理財產(chǎn)品A","annual_rate":"3.2200%","describe":"180天定期理財,最低20000起投,收益穩(wěn)定,可以自助選擇消息推送"}
{"index":{}}
{"productName":"理財產(chǎn)品B","annual_rate":"3.1100%","describe":"90天定投產(chǎn)品,最低10000起投,每天收益到賬消息推送"}
{"index":{}}
{"productName":"理財產(chǎn)品C","annual_rate":"3.3500%","describe":"270天定投產(chǎn)品,最低40000起投,每天收益立即到賬消息推送"}
{"index":{}}
{"productName":"理財產(chǎn)品D","annual_rate":"3.1200%","describe":"90天定投產(chǎn)品,最低12000起投,每天收益到賬消息推送"}
{"index":{}}
{"productName":"理財產(chǎn)品E","annual_rate":"3.0100%","describe":"30天定投產(chǎn)品推薦,最低8000起投,每天收益會消息推送"}
{"index":{}}
{"productName":"理財產(chǎn)品F","annual_rate":"2.7500%","describe":"熱門短期產(chǎn)品,3天短期,無須任何手續(xù)費用,最低500起投,通過短信提示獲取收益消息"}
返回結(jié)果中包含"errors" : false
,說明數(shù)據(jù)插入成功。
步驟五:搜索數(shù)據(jù)
以下命令僅適用于Elasticsearch 7.0以下版本,7.x版本需要將products修改為_doc,8.x版本需要去掉products。
全文搜索
搜索描述內(nèi)容包含
每天收益到賬消息推送
的所有產(chǎn)品。GET /product_info/products/_search { "query": { "match": { "describe": "每天收益到賬消息推送" } } }
搜索成功后,返回結(jié)果如下。
{ "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" : "理財產(chǎn)品B", "annual_rate" : "3.1100%", "describe" : "90天定投產(chǎn)品,最低10000起投,每天收益到賬消息推送" } }, { "_index" : "product_info", "_type" : "products", "_id" : "WrvWYXAB8Rql5AUxLqUU", "_score" : 1.3968885, "_source" : { "productName" : "理財產(chǎn)品D", "annual_rate" : "3.1200%", "describe" : "90天定投產(chǎn)品,最低12000起投,每天收益到賬消息推送" } }, { "_index" : "product_info", "_type" : "products", "_id" : "WbvWYXAB8Rql5AUxLqUU", "_score" : 1.3547361, "_source" : { "productName" : "理財產(chǎn)品C", "annual_rate" : "3.3500%", "describe" : "270天定投產(chǎn)品,最低40000起投,每天收益立即到賬消息推送" } }, { "_index" : "product_info", "_type" : "products", "_id" : "W7vWYXAB8Rql5AUxLqUU", "_score" : 1.1507283, "_source" : { "productName" : "理財產(chǎn)品E", "annual_rate" : "3.0100%", "describe" : "30天定投產(chǎn)品推薦,最低8000起投,每天收益會消息推送" } }, { "_index" : "product_info", "_type" : "products", "_id" : "XLvWYXAB8Rql5AUxLqUU", "_score" : 0.5753642, "_source" : { "productName" : "理財產(chǎn)品F", "annual_rate" : "2.7500%", "describe" : "熱門短期產(chǎn)品,3天短期,無須任何手續(xù)費用,最低500起投,通過短信提示獲取收益消息" } }, { "_index" : "product_info", "_type" : "products", "_id" : "V7vWYXAB8Rql5AUxLqUU", "_score" : 0.31854028, "_source" : { "productName" : "理財產(chǎn)品A", "annual_rate" : "3.2200%", "describe" : "180天定期理財,最低20000起投,收益穩(wěn)定,可以自助選擇消息推送" } } ] } }
說明阿里云Elasticsearch支持通過分詞器搜索數(shù)據(jù),同時也支持評分排序。在上文的返回結(jié)果中,前兩條商品信息中都出現(xiàn)了
每天收益到賬消息推送
,后兩條商品信息中只出現(xiàn)了關鍵詞消息推送
,所以越靠前的搜索結(jié)果的匹配度越高,分數(shù)也越高。按查詢條件搜索
搜索年化率在3.0000%到3.1300%之間的產(chǎn)品。
GET /product_info/products/_search { "query": { "range": { "annual_rate": { "gte": "3.0000%", "lte": "3.1300%" } } } }
執(zhí)行成功后,返回結(jié)果如下。
{ "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" : "理財產(chǎn)品B", "annual_rate" : "3.1100%", "describe" : "90天定投產(chǎn)品,最低10000起投,每天收益到賬消息推送" } }, { "_index" : "product_info", "_type" : "products", "_id" : "WrvWYXAB8Rql5AUxLqUU", "_score" : 1.0, "_source" : { "productName" : "理財產(chǎn)品D", "annual_rate" : "3.1200%", "describe" : "90天定投產(chǎn)品,最低12000起投,每天收益到賬消息推送" } } ] } }
說明Elasticsearch會根據(jù)條件搜索到符合預期的產(chǎn)品,同時以升序排列展示。
更多搜索方式,請參見Query DSL。
(可選)步驟六:刪除索引
了解了阿里云Elasticsearch的使用方法后,您可以執(zhí)行如下命令,刪除對應索引,避免浪費資源。
索引刪除后不可恢復,請謹慎操作。
DELETE /product_info
刪除成功后,返回如下結(jié)果。
{
"acknowledged" : true
}
(可選)步驟七:釋放實例
如果您不再需要按量付費的實例,可以將其釋放。釋放后,實例停止計費,數(shù)據(jù)不可恢復。
實例釋放后數(shù)據(jù)無法恢復,建議您在釋放之前先備份數(shù)據(jù)。具體操作,請參見數(shù)據(jù)備份概述。
在Elasticsearch實例列表中,選擇目標實例操作列下的 。
在彈出的對話框中,單擊確認。
退訂不再需要繼續(xù)使用的包年包月的阿里云ES實例,請參見退訂和退款說明。