全部產品
Search
文件中心

:通過Kibana進行資料檢索

更新時間:Jul 25, 2025

本文以“某金融服務企業使用Elasticsearch(簡稱ES)為使用者提供理財產品的搜尋功能”情境為例,為您介紹如何使用阿里雲ES搭建叢集並完成索引建立、資料搜尋等操作。

操作須知

  • 資料說明:樣本該企業的理財產品資訊如下。

    資料樣本

    {
        "products": [
            {
                "productName": "理財產品A",
                "annual_rate": "3.2200%",
                "describe": "180天定期理財,最低20000起投,收益穩定,可以自助選擇訊息推送"
            },
            {
                "productName": "理財產品B",
                "annual_rate": "3.1100%",
                "describe": "90天定投產品,最低10000起投,每天收益到賬訊息推送"
            },
            {
                "productName": "理財產品C",
                "annual_rate": "3.3500%",
                "describe": "270天定投產品,最低40000起投,每天收益立即到賬訊息推送"
            },
            {
                "productName": "理財產品D",
                "annual_rate": "3.1200%",
                "describe": "90天定投產品,最低12000起投,每天收益到賬訊息推送"
            },
            {
                "productName": "理財產品E",
                "annual_rate": "3.0100%",
                "describe": "30天定投產品推薦,最低8000起投,每天收益會訊息推送"
            },
            {
                "productName": "理財產品F",
                "annual_rate": "2.7500%",
                "describe": "熱門短期產品,3天短期,無須任何手續約用,最低500起投,通過簡訊通知擷取收益訊息"
            }
        ]
    }
  • 版本說明:阿里雲ES支援多個版本,不同版本的功能存在差異。本文以8.17版本進行案例示範。

  • 費用說明:本文樣本建立隨用隨付執行個體,會根據實際的資源使用量收取相應費用。完成本文案例,預計花費不超過20元。

  • Kibana:是靈活的資料分析及視覺化檢視,在Kibana中,您可搜尋及查看ES索引中的資料,並進行互動。

  • Restful API:可通過HTTP協議與ES叢集進行互動。本文的索引建立、資料插入及搜尋、索引刪除等相關操作均使用Restful API實現。

前提條件

建立Virtual Private Cloud和虛擬交換器vSwitch。您可通過VPC和vSwitch保障ES執行個體的網路安全、與其他資源互連、實現高可用。

說明

建立ES執行個體時需選擇合適的VPC和vSwitch。VPC、vSwitch需要與ES執行個體同地區、同可用性區域,並且執行個體建立成功後不可更改。

本文樣本VPC及vSwitch的核心參數配置如下。

類別

配置樣本

VPC

  • 地區:華東1(杭州)

  • IPv4網段:選擇手動輸入,網段為172.16.0.0/16

vSwitch

可用性區域:杭州可用性區域I。

操作流程

使用阿里雲ES搭建叢集並完成資料搜尋的相關操作流程如下。

  1. 建立執行個體:阿里雲ES執行個體是一個託管式的ES服務,提供了一個便於使用、可擴充且穩定的搜尋引擎平台。我們所要執行的資料存放區、搜尋與分析等所有操作均需在執行個體中完成。

  2. 訪問執行個體:通過Kibana訪問執行個體,後續會基於Kibana完成執行個體的索引建立、文檔建立、資料插入及搜尋等操作。

  3. 建立索引:用於後續儲存本文樣本的理財產品資訊,並定義該資訊中各個欄位的搜尋類型及分詞方式。

    說明

    索引是ES用於儲存相關文檔的邏輯容器,可協助您組織和管理資料,顯著提升查詢效率。

  4. 建立文檔並插入資料:將本文樣本的理財產品資訊以文檔形式插入至上一步建立的索引中,以便後續查詢。

  5. 搜尋資料:可通過全文檢索搜尋、按條件搜尋等方式查詢所需產品。

  6. (可選)後續步驟:可按需執行測試索引刪除、資料移轉、叢集擴容或執行個體釋放等操作。

步驟一:建立執行個體

  1. 進入執行個體建立頁面

  2. 配置執行個體資訊。

    按如下表格配置執行個體資訊。

    說明

    未提及的參數保持預設配置。更多建立執行個體的參數介紹,請參見建立Elasticsearch執行個體

    參數

    描述

    商品類型

    選擇隨用隨付

    地區和可用性區域

    選擇華東1(杭州)可用性區域I

    可用性區域數量

    選擇單可用性區域

    專用網路及虛擬交換器

    選擇您在前提條件中建立的VPC及vSwitch。

    執行個體類型及版本

    選擇向量增強版8.17.0版本。

    執行個體名稱

    配置為ES_test

    登入名稱及登入密碼

    登入名稱預設為elastic,且不可更改;登入密碼自訂。

  3. 單擊立即購買,按照介面指引完成支付。支付完成後,執行個體開始建立。

    說明

    建立過程預計耗時20分鐘左右,請耐心等待。

  4. 查看執行個體狀態。

    1. 進入Elasticsearch控制台

    2. 在頂部功能表列選擇華東1(杭州)地區,單擊左側導覽列的Elasticsearch執行個體,即可在執行個體列表中查看所建立執行個體的狀態。

      當執行個體狀態顯示正常,表示執行個體建立成功,您可繼續執行下述步驟。

步驟二:訪問執行個體

  1. 進入可視化控制。

    1. 在Elasticsearch執行個體列表單擊目標執行個體ID。

    2. 在左側導覽列單擊配置與管理 > 可視化控制

  2. 配置Kibana白名單。

    本文樣本通過公網訪問Kibana。為避免訪問受限,需將您用戶端的IP地址加入Kibana的公網訪問白名單。

    說明

    更多訪問Kibana的網路設定及常見問題,請參見配置Kibana公網或私網

    1. Kibana地區,單擊修改配置

    2. 單擊Kibana公網訪問白名單後的修改,按照介面指引,將您用戶端的IP地址加入白名單。

  3. 進入Kibana開發工具。

    通過Kibana的開發工具可訪問ES執行個體,完成執行個體的索引建立、文檔建立、資料插入及搜尋等操作。

    1. 返回可視化控制頁面,單擊Kibana地區的公網入口

    2. 輸入使用者名稱及密碼,單擊登入

      說明

      使用者名稱為elastic,密碼為您在步驟一中自訂的密碼。

    3. 在歡迎頁面單擊自己瀏覽

    4. 在左上方單擊image表徵圖,選擇Management > 開發工具,進入開發工具控制台。

  4. 測試訪問結果。

    在控制台頁簽執行GET /命令,訪問ES執行個體。出現如下結果,表示訪問成功。image

步驟三:建立索引

建立索引product_info,並配置對productNamedescribe欄位進行全文檢索搜尋及粗粒度分詞,對annual_rate欄位進行精確匹配,範例程式碼如下。

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"
        }
    }
  }
}

核心參數說明如下。

類別

參數及描述

settings(配置索引)

定義主分區及主分區副本的數量。

  • number_of_shards:主分區數量,用於水平擴充資料存放區和查詢負載。

  • number_of_replicas:每個主分區的副本數量,用於提高容錯性和讀取效能。

mappings(定義欄位對應)

定義對理財產品資訊中productNameannual_ratedescribe欄位的搜尋類型及分詞方式。

  • type:定義欄位的資料類型及搜尋方式。

    • 配置為text:表示相關欄位會被全文檢索搜尋,並且支援分詞及模糊比對。

    • 配置為keyword:表示相關欄位會精確匹配,不會進行分詞。

  • analyzer:定義欄位的分詞方式。本文樣本使用中文分詞外掛程式analysis-ik進行粗粒度分詞。

返回如下結果,表示索引建立成功。image

步驟四:建立文檔並插入資料

使用_bulkAPI,批量向product_info索引插入多條文檔,每條文檔的內容為理財產品資訊的相關資料(包含理財產品的名稱、年化利率、描述欄位)。範例程式碼如下。

說明

{"index":{}}表示插入一條新文檔,ES會自動為該文檔產生一個唯一ID。

POST /product_info/_bulk
{"index":{}}
{"productName":"理財產品A","annual_rate":"3.2200%","describe":"180天定期理財,最低20000起投,收益穩定,可以自助選擇訊息推送"}
{"index":{}}
{"productName":"理財產品B","annual_rate":"3.1100%","describe":"90天定投產品,最低10000起投,每天收益到賬訊息推送"}
{"index":{}}
{"productName":"理財產品C","annual_rate":"3.3500%","describe":"270天定投產品,最低40000起投,每天收益立即到賬訊息推送"}
{"index":{}}
{"productName":"理財產品D","annual_rate":"3.1200%","describe":"90天定投產品,最低12000起投,每天收益到賬訊息推送"}
{"index":{}}
{"productName":"理財產品E","annual_rate":"3.0100%","describe":"30天定投產品推薦,最低8000起投,每天收益會訊息推送"}
{"index":{}}
{"productName":"理財產品F","annual_rate":"2.7500%","describe":"熱門短期產品,3天短期,無須任何手續約用,最低500起投,通過簡訊通知擷取收益訊息"}

返回結果中包含"errors": false,表示資料插入成功。image

步驟五:搜尋資料

情境一:全文檢索搜尋

樣本使用match查詢,對describe欄位執行關鍵字匹配,搜尋product_info索引中描述內容包含每天收益到賬訊息推送的所有產品,代碼如下。

GET /product_info/_search
{
  "query": {
    "match": {
      "describe": "每天收益到賬訊息推送"
    }
  }
}

核心參數說明如下。

參數

描述

query

定義查詢條件。

match

對輸入內容會進行分詞。

describe

要查詢的欄位,即描述內容。在product_info索引中,describe欄位被定義為text類型,採用analysis-ik分詞器進行粗粒度分詞,即對該欄位的查詢會採取全文匹配並進行分詞。

返回結果如下。

說明
  • 阿里雲ES支援通過分詞器處理文本資料後,進行資料搜尋並進行評分排序。在返回結果中,越靠前的搜尋結果匹配度及分數越高。

  • 該查詢將返回所有描述欄位中包含與關鍵詞文本相關的文檔。由於採用全文檢索搜尋機制,即使描述中部分詞語順序變化或省略,ES仍能根據相關性進行匹配。

{
  "took": 27,
  "timed_out": false,
  "_shards": {
    "total": 5,
    "successful": 5,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": {
      "value": 6,
      "relation": "eq"
    },
    "max_score": 1.7260926,
    "hits": [
      {
        "_index": "product_info",
        "_id": "MXS855cBfq0GQy5BxZ0m",
        "_score": 1.7260926,
        "_source": {
          "productName": "理財產品C",
          "annual_rate": "3.3500%",
          "describe": "270天定投產品,最低40000起投,每天收益立即到賬訊息推送"
        }
      },
      {
        "_index": "product_info",
        "_id": "MnS855cBfq0GQy5BxZ0m",
        "_score": 1.7260926,
        "_source": {
          "productName": "理財產品D",
          "annual_rate": "3.1200%",
          "describe": "90天定投產品,最低12000起投,每天收益到賬訊息推送"
        }
      },
      {
        "_index": "product_info",
        "_id": "MHS855cBfq0GQy5BxZ0m",
        "_score": 1.7260926,
        "_source": {
          "productName": "理財產品B",
          "annual_rate": "3.1100%",
          "describe": "90天定投產品,最低10000起投,每天收益到賬訊息推送"
        }
      },
      {
        "_index": "product_info",
        "_id": "M3S855cBfq0GQy5BxZ0m",
        "_score": 1.1507283,
        "_source": {
          "productName": "理財產品E",
          "annual_rate": "3.0100%",
          "describe": "30天定投產品推薦,最低8000起投,每天收益會訊息推送"
        }
      },
      {
        "_index": "product_info",
        "_id": "L3S855cBfq0GQy5BxZ0m",
        "_score": 1.1325164,
        "_source": {
          "productName": "理財產品A",
          "annual_rate": "3.2200%",
          "describe": "180天定期理財,最低20000起投,收益穩定,可以自助選擇訊息推送"
        }
      },
      {
        "_index": "product_info",
        "_id": "NHS855cBfq0GQy5BxZ0m",
        "_score": 0.3420724,
        "_source": {
          "productName": "理財產品F",
          "annual_rate": "2.7500%",
          "describe": "熱門短期產品,3天短期,無須任何手續約用,最低500起投,通過簡訊通知擷取收益訊息"
        }
      }
    ]
  }
}

情境二:按條件搜尋

樣本使用range查詢,在 product_info 索引中搜尋年化率在3.0000%~3.1300%之間的產品,代碼如下。

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

核心參數說明如下。

參數

描述

query

定義查詢條件。

range

表示範圍查詢。

annual_rate

要查詢的欄位,即年化率。在product_info索引中,annual_rate欄位被定義為keyword類型,即對該欄位的查詢會採取精確匹配。

gte

取值範圍,大於等於。

lte

取值範圍,小於等於。

返回結果如下。

{
  "took": 27,
  "timed_out": false,
  "_shards": {
    "total": 5,
    "successful": 5,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": {
      "value": 3,
      "relation": "eq"
    },
    "max_score": 1,
    "hits": [
      {
        "_index": "product_info",
        "_id": "M3S855cBfq0GQy5BxZ0m",
        "_score": 1,
        "_source": {
          "productName": "理財產品E",
          "annual_rate": "3.0100%",
          "describe": "30天定投產品推薦,最低8000起投,每天收益會訊息推送"
        }
      },
      {
        "_index": "product_info",
        "_id": "MnS855cBfq0GQy5BxZ0m",
        "_score": 1,
        "_source": {
          "productName": "理財產品D",
          "annual_rate": "3.1200%",
          "describe": "90天定投產品,最低12000起投,每天收益到賬訊息推送"
        }
      },
      {
        "_index": "product_info",
        "_id": "MHS855cBfq0GQy5BxZ0m",
        "_score": 1,
        "_source": {
          "productName": "理財產品B",
          "annual_rate": "3.1100%",
          "describe": "90天定投產品,最低10000起投,每天收益到賬訊息推送"
        }
      }
    ]
  }
}

(可選)後續步驟

刪除索引

執行如下代碼,刪除本文建立的測試索引。

DELETE /product_info

返回結果如下。image

遷移資料及擴容叢集

  • 資料移轉:您可將您的業務資料移轉至阿里雲ES,使用阿里雲ES進行後續的查詢分析操作。

  • 叢集擴容:若當前叢集配置無法滿足您的業務負載和效能需求,可按需進行擴容。

釋放執行個體

若ES執行個體後續無需使用,請及時釋放,避免浪費資源併產生額外費用。

警告

執行個體釋放後,資料無法恢複,請謹慎操作,建議釋放執行個體前先備份資料。執行個體釋放後將停止計費。

相關文檔