Todos os produtos
Search
Central de documentação

PolarDB:PolarSearch quick start

Última atualização: Jul 08, 2026

O PolarSearch é o serviço de busca distribuída do PolarDB, com suporte a busca de texto completo e busca vetorial. Desenvolvido sobre o OpenSearch, ele é compatível com o ecossistema Elasticsearch e integra-se diretamente aos bancos de dados PolarDB. O PolarSearch oferece uma solução completa que simplifica a recuperação dos seus dados.

Importante

Este guia pressupõe conhecimento básico de Elasticsearch ou OpenSearch. Para mais informações, consulte a Documentação do OpenSearch.

  • Sites: Site da China e Site Internacional

  • Contato por ticket: Nianzi

  • Este recurso, anteriormente disponível apenas mediante lista de permissões, agora está geralmente disponível, mas restrito a zonas de disponibilidade específicas. Para solicitar suporte a zonas de disponibilidade adicionais, envie um ticket.

Pré-requisitos

Requisitos de configuração do cluster

  • Edição do produto: Enterprise Edition.

  • Série: Cluster Edition.

  • Mecanismo de banco de dados: MySQL 8.0.1 ou MySQL 8.0.2.

    Nota

    Não há requisitos específicos de versão secundária para os mecanismos de banco de dados listados acima. Para mais informações, consulte Consultar o número da versão.

  • Alternativamente, para o mecanismo de banco de dados PostgreSQL:

    • (versão secundária do kernel 2.0.18.3.2.0 ou posterior)

    • (versão secundária do kernel 2.0.17.9.6.0 ou posterior)

    • (versão secundária do kernel 2.0.16.11.15.0 ou posterior)

    • (versão secundária do kernel 2.0.15.17.8.0 ou posterior)

    • (versão secundária do kernel 2.0.14.22.43.0 ou posterior)

Regiões e zonas de disponibilidade suportadas

O PolarSearch tem suporte nas seguintes zonas de disponibilidade:

Região

Zona de disponibilidade

China (Hangzhou)

Zona K, Zona J

China (Shanghai)

Zona E, Zona F, Zona L, Zona N

China (Shenzhen)

Zona C, Zona D, Zona F

China (Beijing)

Zona F, Zona L, Zona I, Zona K

China (Zhangjiakou)

Zona B

China (Ulanqab)

Zona B, Zona C

China (Hong Kong)

Zona B, Zona D

Singapura

Zona A, Zona B

Japão (Tóquio)

Zona A, Zona C

Coreia do Sul (Seul)

Zona A, Zona B

Alemanha (Frankfurt)

Zona A

EUA (Vale do Silício)

Zona B

Filipinas (Manila)

Zona A

Nota

Caso necessite de suporte para zonas de disponibilidade adicionais, envie um ticket.

Faturamento

O PolarSearch fornece funcionalidade de busca por meio de nós de busca dedicados, sujeitos a cobrança. O faturamento desses nós segue as regras de Faturamento de nós de computação comuns. Além disso, os índices e dados nos nós de busca consomem espaço de armazenamento, sujeito às respectivas taxas de armazenamento e .

Adicionar nós de busca do PolarSearch

  • Adicione nós de busca a um cluster existente que atenda aos Pré-requisitos.

    1. Faça login no console do PolarDB. No painel de navegação à esquerda, clique em Clusters. Em seguida, selecione a região do cluster e localize o cluster desejado.

    2. Clique no id do cluster para abrir a página Basic Information.

    3. Na seção Database Nodes, clique em Add/Remove Node.

      image

    4. No assistente Add/Remove Node, escolha adicionar um nó de busca.

Criar contas de nó de busca

Configurar a conta de administrador

Nota
  • A conta adicionada é uma conta padrão.

  • Essa conta padrão funciona como a conta de administrador do PolarSearch.

  1. Faça login no console do PolarDB. No painel de navegação à esquerda, clique em Clusters. Em seguida, selecione a região do cluster e localize o cluster desejado.

  2. Clique no id do cluster para abrir a página Basic Information.

  3. Na seção Database Nodes, passe o mouse sobre Search Node e clique em Set Database Account.

    image

  4. Na caixa de diálogo exibida, selecione uma conta padrão existente ou crie uma nova e insira a senha da conta.

    image

    Importante

    O nome da conta de banco de dados não pode ser uma substring de sua senha. A verificação não diferencia maiúsculas de minúsculas. Por exemplo, para uma conta de banco de dados chamada search_test, a senha não pode ser SEARCH_test@123, mas pode ser SEARCHtest@123 ou SEARCH@_test.

Configurar contas padrão

Configure as permissões das contas padrão individualmente por índice. Defina-as pelo Dashboard ou pela REST API.

Configuração via Dashboard

Nota

A conta deve possuir a função security_rest_api_access. Caso contrário, a página Security não será exibida.

  1. Criar um usuário:

    1. No painel de navegação à esquerda, acesse a página Management > Security, selecione Internal users e clique em Create internal user.image

    2. Na página de criação de usuário, insira um nome de usuário e senha para criá-lo. Por exemplo, crie um usuário chamado testuser com a senha USER@test123 e clique em Create.image

  2. Criar uma função

    1. No painel de navegação à esquerda, acesse a página Management > Security, selecione Roles e clique em Create role.image

    2. As permissões da função incluem permissões de cluster e de índice, configuráveis mediante a adição de grupos de ações. No campo Index, especifique um nome de índice ou utilize o caractere curinga * para corresponder a um conjunto de nomes de índice. Na seção Index permissions, selecione permissões específicas, como somente leitura ou leitura/escrita.

      Exemplo: Crie uma função chamada onlyreadrole com permissões totais de cluster (ilimitado equivale a permissões totais) e permissão de somente leitura para todos os índices com o prefixo indextest.image.png

  3. Mapear uma função para um usuário

    1. No painel de navegação à esquerda, acesse a página Management > Security, selecione Roles e clique na função desejada.

    2. Na aba Mapped users, adicione um mapeamento de usuário. Um usuário pode ser mapeado para várias funções e herda as permissões de todas as funções mapeadas.

      Exemplo: Mapeie a função onlyreadrole para o usuário testuser. Isso concede ao usuário testuser as permissões da função onlyreadrole.image.png

Configuração via REST API

Os nós de busca suportam controle de acesso total por meio de APIs. Para mais detalhes, consulte a documentação da API do OpenSearch.

  1. Criar um usuário

    curl -X PUT "http://<endpoint>:<port>/_plugins/_security/api/internalusers/<new_user>" \
      --user "<user_name>:<passwd>" \
      -H "Content-Type: application/json" \
      -d '{
        "password": "<new_password>",
        "backend_roles": [],
        "attributes": {}
      }'

    Exemplo: Crie um usuário chamado testuser com a senha USER@test123.

    curl -X PUT "http://<endpoint>:<port>/_plugins/_security/api/internalusers/testuser" \
      --user "<user_name>:<passwd>" \
      -H "Content-Type: application/json" \
      -d '{
        "password": "USER@test123",
        "backend_roles": [],
        "attributes": {}
      }'
  2. Criar uma função

    curl -X PUT "http://<endpoint>:<port>/_plugins/_security/api/roles/<role_name>" \
      --user "<user_name>:<passwd>" \
      -H "Content-Type: application/json" \
      -d '{
        "cluster_permissions": ["*"],
        "index_permissions": [
          {
            "index_patterns": ["*"],
            "allowed_actions": ["*"]
          }
        ]
      }'
    • index_patterns: Especifica os índices a serem configurados. Utilize o caractere curinga * para configurar múltiplos índices simultaneamente.

    • allowed_actions: Define as permissões a conceder, como read e write.

    Exemplo: Crie uma função chamada onlyreadrole com permissões totais de cluster e permissão de somente leitura para todos os índices com o prefixo indextest.

    curl -X PUT "http://<endpoint>:<port>/_plugins/_security/api/roles/onlyreadrole" \
      --user "<user_name>:<passwd>" \
      -H "Content-Type: application/json" \
      -d '{
        "cluster_permissions": ["*"],
        "index_permissions": [
          {
            "index_patterns": ["indextest*"],
            "allowed_actions": ["read"]
          }
        ]
      }'
  3. Mapear uma função

    curl -X PUT "http://<endpoint>:<port>/_plugins/_security/api/rolesmapping/<role_name>" \
      --user "<user_name>:<passwd>" \
      -H "Content-Type: application/json" \
      -d '{
        "backend_roles": [],
        "hosts": [],
        "users": ["<new_user>"]
      }'

    Exemplo: Mapeie a função onlyreadrole para o usuário testuser. Isso concede ao usuário testuser as permissões da função onlyreadrole.

    curl -X PUT "http://<endpoint>:<port>/_plugins/_security/api/rolesmapping/onlyreadrole" \
      --user "<user_name>:<passwd>" \
      -H "Content-Type: application/json" \
      -d '{
        "backend_roles": [],
        "hosts": [],
        "users": ["testuser"]
      }'

Obter endpoints de conexão

Endpoint de busca

Na seção Database Nodes, passe o mouse sobre um Search Node para obter o endpoint privado ou público correspondente ao seu ambiente.

image

Endpoint do Dashboard

Na seção Database Nodes, passe o mouse sobre um Search Node para obter o endpoint privado ou público do Dashboard correspondente ao seu ambiente.image

Conectar-se ao PolarSearch

Conexão via endpoint de busca

Para gerenciar índices e dados por meio de APIs, conecte-se ao PolarSearch pelo endpoint de busca. O exemplo a seguir demonstra a conexão a partir de uma instância ecs.

  1. Configurar a lista de permissões do cluster: Adicione o endereço IP da sua instância ecs à lista de permissões do cluster PolarDB.

    Nota
    • Se a instância ecs e o cluster PolarDB estiverem na mesma virtual private cloud (vpc), adicione o endereço IP privado da instância ecs à lista de permissões.

    • Caso a instância ecs e o cluster PolarDB não estejam na mesma vpc, adicione o endereço IP público da instância ecs à lista de permissões.

  2. Conecte-se ao PolarSearch: Execute o comando abaixo. Se o comando retornar informações do cluster, a conexão foi bem-sucedida. Substitua <endpoint>:<port> pelo endpoint de busca do PolarSearch e <user_name>:<passwd> pela conta de administrador do PolarSearch.

    curl http://<endpoint>:<port>/ -u <user_name>:<passwd>

Conexão via Dashboard

Para gerenciar o PolarSearch por uma interface gráfica, acesse-o pelo Dashboard. O exemplo a seguir utiliza um navegador em ambiente local:

  1. Configurar a lista de permissões do cluster: Adicione o endereço IP público da sua máquina local à lista de permissões do cluster PolarDB.

  2. Faça login no console do PolarSearch em um navegador:

    1. Na barra de endereços do navegador, insira http://<endpoint>:<port> e pressione Enter. Substitua <endpoint>:<port> pelo endpoint público do Dashboard do PolarSearch.

    2. Na página de login, insira as credenciais da conta de administrador do PolarSearch para acessar o console do PolarSearch compatível com Kibana.

Exemplos

Nota
  • Todos os exemplos nesta seção são executados via linha de comando em uma instância ecs.

  • O PolarSearch é totalmente compatível com o SDK e a REST API do OpenSearch 2.19.0. O uso de outras versões pode causar problemas de compatibilidade. Para mais informações, consulte OpenSearch.

Criar um índice

Um índice em um nó de busca equivale a uma tabela em um banco de dados relacional. Crie um índice usando uma REST API compatível com Elasticsearch ou executando comandos diretamente no Dashboard. Veja os exemplos a seguir:

CLI

curl -XPUT "http://<endpoint>:<port>/articles" \
--user "<user_name>:<passwd>" \
-H 'Content-Type: application/json' \
-d '{
  "settings": {
    "number_of_shards": 1,
    "number_of_replicas": 1
  },
  "mappings": {
    "properties": {
      "title": {
        "type": "text"
      },
      "content": {
        "type": "text"
      },
      "author": {
        "type": "keyword"
      }
    }
  }
}'

Dashboard

PUT articles
{
  "settings": {
    "number_of_shards": 1,
    "number_of_replicas": 1
  },
  "mappings": {
    "properties": {
      "title": {
        "type": "text"
      },
      "content": {
        "type": "text"
      },
      "author": {
        "type": "keyword"
      }
    }
  }
}

Importar dados

CLI

curl -XPOST "http://<endpoint>:<port>/articles/_bulk" \
--user "<user_name>:<passwd>" \
-H 'Content-Type: application/json' \
-d '
{"index": {}}
{"title": "Introduction to PolarSearch", "content": "PolarSearch is a powerful search engine.", "author": "Allen"}
{"index": {}}
{"title": "Advanced Search Techniques", "content": "Learn how to use full-text search and filters in PolarDB.", "author": "Lang"}
{"index": {}}
{"title": "Elasticsearch vs PolarSearch", "content": "A comparison of Elasticsearch and PolarSearch features.", "author": "Zhao"}
'

Dashboard

POST articles/_bulk
{"index": {}}
{"title": "Introduction to PolarSearch", "content": "PolarSearch is a powerful search engine.", "author": "Allen"}
{"index": {}}
{"title": "Advanced Search Techniques", "content": "Learn how to use full-text search and filters in PolarDB.", "author": "Lang"}
{"index": {}}
{"title": "Elasticsearch vs PolarSearch", "content": "A comparison of Elasticsearch and PolarSearch features.", "author": "Zhao"}

Executar uma consulta de busca

Após importar os dados, execute buscas de texto completo utilizando um SDK, a REST API ou o Dashboard. Os exemplos abaixo demonstram como proceder:

CLI

curl -XGET "http://<endpoint>:<port>/articles/_search" \
--user "<user_name>:<passwd>" \
-H 'Content-Type: application/json' \
-d '
{
  "query": {
    "match": {
      "content": "PolarSearch"
    }
  }
}'

Dashboard

GET articles/_search
{
  "query": {
    "match": {
      "content": "PolarSearch"
    }
  }
}
Nota

Para mais detalhes sobre a sintaxe de consultas de busca, consulte a documentação do OpenSearch.

Criar um índice vetorial

CLI

curl -XPUT "http://<endpoint>:<port>/my-vector-index" \
--user "<user_name>:<passwd>" \
-H "Content-Type:application/json" \
-d '
{
  "settings": {
    "index": {
      "knn": true
    }
  },
  "mappings": {
    "properties": {
      "vector_field": {
        "type": "knn_vector",
        "dimension": 4
      },
      "metadata": {
        "type": "text"
      }
    }
  }
}
'

Dashboard

PUT my-vector-index
{
  "settings": {
    "index": {
      "knn": true
    }
  },
  "mappings": {
    "properties": {
      "vector_field": {
        "type": "knn_vector",
        "dimension": 4
      },
      "metadata": {
        "type": "text"
      }
    }
  }
}

Inserir dados vetoriais

CLI

curl -XPOST "http://<endpoint>:<port>/my-vector-index/_bulk" \
--user "<user_name>:<passwd>" \
-H "Content-Type:application/json" \
-d '
{"index": {}}
{"vector_field": [0.1, 0.5, -0.3, 0.8], "metadata": "Document 1"}
{"index": {}}
{"vector_field": [-0.2, 0.7, 0.4, -0.1], "metadata": "Document 2"}
'

Dashboard

POST my-vector-index/_bulk
{"index": {}}
{"vector_field": [0.1, 0.5, -0.3, 0.8], "metadata": "Document 1"}
{"index": {}}
{"vector_field": [-0.2, 0.7, 0.4, -0.1], "metadata": "Document 2"}

Busca vetorial

CLI

curl -XGET "http://<endpoint>:<port>/my-vector-index/_search" \
--user "<user_name>:<passwd>" \
-H "Content-Type:application/json" \
-d '
{
  "size": 2,
  "query": {
    "knn": {
      "vector_field": {
        "vector": [0.1, 0.5, -0.3, 0.8],
        "k": 2
      }
    }
  }
}
'

Dashboard

GET my-vector-index/_search
{
  "size": 2,
  "query": {
    "knn": {
      "vector_field": {
        "vector": [0.1, 0.5, -0.3, 0.8],
        "k": 2
      }
    }
  }
}