ZomboDB是一個PostgreSQL擴展插件,支持原生的訪問方式,為PostgreSQL數據庫帶來了強大的文本索引和分析功能。
前提條件
PolarDB PostgreSQL版的版本為PostgreSQL 11。背景信息
ZomboDB提供了一套全方位的查詢語言,可以供您自由地查詢關系型數據。此外,ZomboDB允許您創建ZomboDB類型的索引,此時ZomboDB完全接管遠程的Elasticsearch,并負責文本搜索的事務正確性。
ZomboDB的優勢在于允許您直接使用Elasticsearch的強大功能而不用處理同步、通信等問題。
插件的創建與刪除
- 創建插件
CREATE EXTENSION zombodb;
- 刪除插件
DROP EXTENSION zombodb;
示例
- 創建一個表。
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 );
- 為表添加ZomboDB類型的索引。
CREATE INDEX idxproducts ON products USING zombodb ((products.*)) WITH (url='localhost:9200/');
說明- ZomboDB不支持Elasticsearch 7.x、8.x 版本的實例。
WITH
語句后跟隨了Elasticsearch的地址,該地址指向了一個正在服務的Elasticsearch實例。
- 使用ZomboDB格式的查詢語句進行查詢。
SELECT * FROM products WHERE products ==> '(keywords:(sports OR box) OR long_description:"wooden away"~5) AND price:[1000 TO 20000]';
說明 ZomboDB格式的查詢語句詳細規則請參見ZomboDB官方文檔。