Todos os produtos
Search
Central de documentação

PolarDB:ZomboDB

Última atualização: Jun 28, 2026

O ZomboDB integra o mecanismo de pesquisa de texto completo e análise do Elasticsearch diretamente ao PolarDB for PostgreSQL. Diferentemente da pesquisa de texto completo nativa do PostgreSQL (tsvector/tsquery), o ZomboDB oferece resultados classificados por relevância, expressões de consulta complexas e análises facetadas em grandes conjuntos de dados, sem exigir código personalizado para sincronização ou integração.

Quando usar o ZomboDB

O ZomboDB é indicado quando sua aplicação precisa de recursos avançados de pesquisa de texto completo que vão além das capacidades nativas do PostgreSQL, como classificação por relevância, consultas de proximidade ou análises baseadas em agregação sobre grandes campos de texto.

Se seus requisitos se limitarem a correspondência simples de palavras-chave em tabelas pequenas, a pesquisa de texto completo nativa do PostgreSQL será suficiente e evitará a sobrecarga de manter um cluster externo do Elasticsearch.

Pré-requisitos

Antes de começar, verifique se você tem:

  • Um cluster do PolarDB for PostgreSQL executando o PostgreSQL 11

  • Um cluster do Elasticsearch em execução (o ZomboDB não oferece suporte às versões 7.x e 8.x do Elasticsearch)

  • A URL do endpoint do cluster do Elasticsearch (por exemplo, http://localhost:9200/)

Instale e remover o ZomboDB

Instale a extensão ZomboDB:

CREATE EXTENSION zombodb;

Remova a extensão quando ela não for mais necessária:

DROP EXTENSION zombodb;

Defina e consultar um índice ZomboDB

Este exemplo demonstra como crie uma tabela, construir um índice ZomboDB conectado a um cluster do Elasticsearch, inserir dados de amostra e execute uma consulta de texto completo.

Etapa 1: Crie uma tabela

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
);

Etapa 2: Crie um índice ZomboDB

Crie um índice que aponte para o seu cluster do Elasticsearch. O ZomboDB gerencia o índice remoto correspondente e o mantém sincronizado com sua tabela do PostgreSQL.

CREATE INDEX idxproducts
          ON products
       USING zombodb ((products.*))
        WITH (url='localhost:9200/');
        -- Replace localhost:9200 with your Elasticsearch cluster endpoint.
        -- ZomboDB does not support Elasticsearch 7.x and 8.x.

Etapa 3: Inserir dados de amostra

INSERT INTO products (name, keywords, short_summary, long_description, price, inventory_count)
VALUES
  ('Wooden Baseball Bat',  ARRAY['sports', 'outdoor'],
   'Classic wooden bat for recreational play.',
   'A sturdy wooden bat suitable for backyard games and casual leagues.',
   4999, 120),
  ('Boxing Gloves',        ARRAY['sports', 'box', 'training'],
   'Professional boxing gloves for heavy bag training.',
   'Durable leather gloves with wrist support, ideal for gym workouts.',
   14999, 45),
  ('Running Shoes',        ARRAY['footwear', 'running', 'outdoor'],
   'Lightweight shoes for road and trail running.',
   'Breathable mesh upper with cushioned sole for long-distance comfort.',
   8999, 200);

Etapa 4: Consultar usando o ZomboDB

Use o operador ==> — operador de pesquisa personalizado do ZomboDB — para execute uma expressão de consulta no índice. Essa expressão permite combinar correspondência de palavras-chave, proximidade de frases e filtros de intervalo em uma única consulta.

A consulta a seguir localiza produtos cujas keywords incluam sports ou box, ou cuja long_description contenha a frase wooden away dentro de um intervalo de cinco palavras, com price entre 1.000 e 20.000.

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

Resultado esperado: as linhas referentes a Wooden Baseball Bat e Boxing Gloves correspondem à busca, pois seus preços estão dentro do intervalo especificado e suas palavras-chave ou descrições atendem à expressão de consulta.

Nota

Para conhecer a sintaxe completa de consultas do ZomboDB — incluindo correspondência de frases, operadores de proximidade e filtros de intervalo — consulte a

documentação do ZomboDB

.

Próximos passos