全部產品
Search
文件中心

ApsaraDB RDS:整合Elasticsearch(ZomboDB)

更新時間:Jun 19, 2024

ZomboDB是一個PostgreSQL擴充外掛程式,支援原生的訪問方式,為PostgreSQL資料庫帶來了強大的文本索引和分析功能。

前提條件

  • RDS PostgreSQL執行個體版本為PostgreSQL 11。

  • 執行個體核心小版本為20230830或以上。

    重要

    20230830核心小版本之前已支援此外掛程式,但為了規範外掛程式管理,提升RDS PostgreSQL在外掛程式側的安全防護,RDS計劃在核心版本迭代中陸續對部分存在安全風險的外掛程式進行最佳化,部分外掛程式在低核心小版本無法建立,更多資訊,請參見【產品/功能變更】RDS PostgreSQL限制建立外掛程式說明

    • 如果您在20230830核心小版前已經使用了此外掛程式,則不影響使用。

    • 如果您首次建立或重新建立此外掛程式,請升級核心小版本到最新。

背景資訊

ZomboDB提供了一套全方位的查詢語言,可以供您自由地查詢關係型資料。此外,ZomboDB允許您建立ZomboDB類型的索引,此時ZomboDB完全接管遠端Elasticsearch,並負責文本搜尋的事務正確性。

ZomboDB的優勢在於允許您直接使用Elasticsearch的強大功能而不用處理同步、通訊等問題。

外掛程式的建立與刪除

  • 建立外掛程式

    CREATE EXTENSION zombodb;
  • 刪除外掛程式

    DROP EXTENSION zombodb;

樣本

  1. 建立一個表。

    CREATE TABLE products (
        id SERIAL8 NOT NULL PRIMARY KEY,
        name text NOT NULL,
        keywords varchar(64)[],
        short_summary text,
        long_description zdb.fulltext,
        price bigint,
        inventory_count integer,
        discontinued boolean default false,
        availability_date date
    );
  2. 為表添加ZomboDB類型的索引。

    CREATE INDEX idxproducts
              ON products
           USING zombodb ((products.*))
            WITH (url='localhost:9200/');
    說明

    WITH語句後跟隨了Elasticsearch的地址,該地址指向了一個正在服務的Elasticsearch執行個體。

  3. 使用ZomboDB格式的查詢語句進行查詢。

    SELECT *
      FROM products
     WHERE products ==> '(keywords:(sports OR box) OR long_description:"wooden away"~5) AND price:[1000 TO 20000]';
    說明

    ZomboDB格式的查詢語句詳細規則請參見ZomboDB官方文檔