這里,我們以幾個示范的例子,向您簡單介紹天翼云OpenSearch實例可以提供的檢索和分析服務,包括創建索引、數據導入、數據搜索、篩選排序等。
操作步驟
創建實例
在【云搜索服務】產品頁,單擊【立即開通】。
在云搜索服務實例創建頁面選擇計費模式、訂購周期、當前區域(即資源池)、可用區、實例類型、實例版本、實例名稱、節點規格等基礎配置信息后,按頁面提示并根據需要進行配置,然后點擊下一步。
按確認信息頁面提示,勾選相關協議,完成訂單付款,即可完成訂購,等待資源開通完成,對應實例處于“運行中”狀態,即為成功。
導入數據
OpenSearch實例支持多種導入方式,常用的業務場景是把Logstash作為源接入搜索實例,在此,為了演示方便,我們以商品檢索為例子,選擇從Dashboards的DevTools控制臺里調用Rest API導入數據。
注意:Dashboards需要預先鏈接公網使用,具體配置方法請參考實例公網訪問。
先在Dashboards的左邊欄里選擇“DevTools”,進入控制臺。其中左邊屏幕為命令行調用API欄,右邊屏幕為調用結果返回欄。
首先,在console界面,我們創建索引products_fruits來定義存儲數據的Schema。
具體語句如下:
PUT /products_fruits
{
"mappings": {
"properties": {
"name": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"price": {
"type": "long"
}
}
},
"settings": {
"number_of_shards": "1",
"number_of_replicas": "0"
}
}然后我們,在console里執行bulk插入語句,來將數據導入到索引里。
返回結果里errors為false,表示數據全部導入,具體語句如下:
PUT /products_fruits/_bulk
{"index":{"_id":1}}
{"name": "蘋果", "price": 10}
{"index":{"_id":2}}
{"name": "香蕉", "price": 20}
{"index":{"_id":3}}
{"name": "菠蘿", "price": 15}
{"index":{"_id":4}}
{"name": "火龍果", "price": 25}檢索數據
首先,我們進行基本的全文檢索,不設置匹配條件,可以得到所有數據。
檢索語句如下:
GET /products_fruits/_search
{
"query": {
"match_all": {}
}
}同樣,我們可以設置檢索條件、指定分詞器、指定評分等多種條件根據Rest API的語法對檢索的匹配數據進行篩選,得到我們希望的數據。
聚合數據
同樣,OpenSearch也可以提供數據聚合,我們按照價格區間將商品進行聚合,返回的結果如下:
這里的聚合語句如下:
GET /products_fruits/_search
{
"size": 0,
"aggs": {
"price_ranges": {
"range": {
"field": "price",
"ranges": [
{
"from": 0,
"to": 10
},
{
"from": 10,
"to": 20
},
{
"from": 20,
"to": 30
}
]
}
}
}
}數據排序
同樣,數據結果排序,也是OpenSearch一個重要的用途,我們這里按照價格排序將結果檢索出來,右側邊欄按照價格降序進行輸出,如下:
排序語句如下:
GET /products_fruits/_search
{
"query": {
"match_all": {}
}
, "sort": [
{
"price": {
"order": "desc"
}
}
]
}刪除索引數據
當索引不再使用的時候,我們執行語句刪除索引即可:
DELETE /products_fruits