Este tópico resume as perguntas frequentes sobre o uso do OpenSearch.
Sistema
P: O que é o OpenSearch?
O OpenSearch é um service de busca baseado em cloud, desenvolvido para dados estruturados. Com a plataforma fornecida, você obtém facilmente um service de busca escalável, personalizável e de alta qualidade, sem precisar lidar com os detalhes técnicos da implementação. Basta concluir as configurações relevantes e carregar seus dados. Em seguida, obtenha resultados de busca por meio da API. Também disponibilizamos SDKs para as principais linguagens de programação. Para verificar as linguagens compatíveis com os SDKs, consulte o centro de downloads no console de gerenciamento.
P: Quais benefícios o OpenSearch oferece?
O OpenSearch é um service de busca em cloud com alta escalabilidade. Ele ajusta automaticamente os resources de hardware necessários conforme seus dados crescem, permitindo que você tenha um service de busca sem qualquer investimento em hardware. O recurso de busca não sobrecarrega seus servidores existentes. Resultados de busca rápidos e de alta qualidade atendem melhor às necessidades de informação dos seus usuários, o que aumenta a retenção, o tráfego e a popularidade do seu product. Isso gera, em última análise, um valor econômico considerável para o seu negócio.
P: Quantas solicitações de busca posso enviar?
Atualmente, não há limite imposto. Configure manualmente o valor no console com base no seu uso real. Aplicações com QPS muito alto exigem revisão manual. Envie essas solicitações o mais cedo possível. Se o QPS for extremamente elevado, o sistema fará ajustes internos automaticamente, processo que pode levar vários dias.
P: Qual é a latência das solicitações de busca?
A latência real depende muito da complexidade da consulta e do número de documentos correspondentes. Faça testes com seus próprios dados, considerando seu cenário específico.
P: Como funciona o faturamento do OpenSearch?
Para mais informações, consulte Billing overview of native OpenSearch instances. Após a revisão do modelo de faturamento, dois métodos estão disponíveis: o método legado, baseado em armazenamento e QPS, e o novo método, baseado em unidades de computação lógica (LCUs). (Observação: se você utilizar o método de faturamento legado, o consumo de LCU exibido no monitoramento não está relacionado ao faturamento e serve apenas como dado de referência para o desempenho da busca.)
Processo
P: O que é uma aplicação e como crie uma?
Uma aplicação é uma coleção pesquisável de documentos que compartilham o mesmo esquema. Nela, você define tabelas de dados e tipos de campo, configure atributos de busca, carrega dados e obtém resultados. É possível criar, gerencie e exclua aplicações no console ou pela Web API.
P: Qual a finalidade de "Index To" ao definir o esquema de uma aplicação?
Ao consultar palavras-chave em uma cláusula de consulta, especifique o índice a ser consultado, que corresponde ao campo de índice definido na configuração "Index To" do esquema da aplicação. Um campo de índice contém um ou mais campos source. Após a definição desse campo, o mecanismo cria listas invertidas que mapeiam termos de consulta a documentos durante a construção do índice. No momento da consulta, os documentos são localizados rapidamente com base nos termos buscados, o que melhora significativamente o desempenho.
Por exemplo, suponha que um fórum tenha dois requisitos de busca: 1. busca abrangente (título, conteúdo e autor); 2. busca por título. Os campos source são title, body e author. Você pode indexar title, body e author no campo padrão e, adicionalmente, indexar title no campo title_search. Assim, query=default:'keyword' atende ao requisito 1, enquanto query=title_search:'keyword' atende ao requisito 2.
P: O que é um modelo?
Para reduzir ainda mais sua carga de trabalho, oferecemos modelos. Um modelo é um contêiner de aplicação pré-configurado para dados típicos da internet, incluindo esquema da aplicação, métodos de ordenação e outras definições. Ao criar uma aplicação, visualize os detalhes dos modelos disponíveis. Futuramente, adicionaremos mais opções para atender às suas necessidades.
P: Posso modificar o esquema da aplicação de um modelo após selecioná-lo?
Sim. Para mais informações, acesse Application Management > Details > Offline Change para realizar a alteração. Para etapas detalhadas, consulte Offline changes.
P: Como carrego dados em uma aplicação?
Se você usa RDS, MaxCompute (antigo ODPS) ou PolarDB, configure as informações da instância no console para ative a sincronização automática. Outros usuários podem carregar dados usando a API de upload de dados ou o recurso de upload no console de gerenciamento.
P: Quantos documentos posso carregar?
Não há limite superior para o número de documentos carregados em uma aplicação. Defina a cota de capacidade de documentos no console. Para mais detalhes, consulte a seção Application Management > Quotas and Billing. Assim como ocorre com o pico de QPS, solicitações de grande capacidade exigem revisão manual. Essa cota impacta o faturamento, portanto configure-a de acordo com suas necessidades reais.
P: Como excluo uma aplicação?
Na ferramenta de gerenciamento, clique em no nome do índice. Na página de detalhes do índice, clique em "Delete Application" e confirme no prompt do sistema para concluir a exclusão.
P: Como excluo documentos de uma aplicação?
Exclua documentos específicos definindo a operação de exclusão via SDK nos dados carregados. Além disso, a página Search Test no console também oferece um recurso para remover documentos individuais.
P: Como limpo uma aplicação?
Caso precise manter o nome da aplicação, exclua os documentos individualmente para limpar o índice. Se não for necessário preservar o nome, crie uma nova aplicação e copie as configurações relevantes para obter o mesmo resultado. Futuramente, forneceremos um recurso dedicado para limpeza de dados. Atualmente, a Advanced Edition suporta tarefas de limpeza agendadas que retêm documentos por períodos de 7 a 180 dias.
Importação de dados
P: O OpenSearch pode ser usado com services de banco de dados da Alibaba Cloud (RDS)?
Sim. Basta configure as informações da instância RDS na source de dados da aplicação para sincronizar automaticamente as operações do RDS com o OpenSearch. (Após concluir a configuração, importe os dados e reconstrua o índice para trazer todos os dados completos atuais para o sistema.)
P: Com quais services da Alibaba Cloud o OpenSearch se integra diretamente hoje?
No momento, RDS, MaxCompute (antigo ODPS) e PolarDB são suportados. Mais services serão integrados futuramente. Fique atento às atualizações.
P: Qual é o formato de documento para uploads via API ou SDK?
Atualmente, JSON é o formato suportado. Consulte os arquivos de exemplo na página de modelos ou a descrição na seção de processamento de dados da documentação da API.
P: Qual a diferença entre os comandos add e update?
Se valores não forem especificados para alguns campos no documento carregado via add ou update, o comando add substitui esses campos pelos valores padrão, enquanto o update os mantém inalterados.
Busca
P: Quais recursos de busca o OpenSearch oferece?
O OpenSearch fornece busca para tipos básicos, como texto e números, além de recursos de consulta, filtragem, ordenação, estatísticas e agregação. Inclui também modelos de dados típicos, esquemas de índice personalizados, ordenação personalizada de resultados, análise de consulta customizável (como sinônimos e correção ortográfica) e sugestões suspensas.
P: Como obtenho todos os documentos?
Isso não é suportado. Um mecanismo de busca foca em retornar os melhores resultados no menor tempo possível, portanto não oferece um recurso para visualizar todos os documentos. O OpenSearch limita o número máximo de resultados retornados (para mais informações, consulte os limites do sistema). Mesmo com paginação, você só consegue navegar pelos resultados dentro da contagem total retornada em viewtotal.
P: Por que um campo do tipo Array é retornado como string em vez de array nos resultados da consulta?
Nos resultados de busca, os valores do tipo Array são separados por \t.
P: Posso especificar meu próprio método de tokenização e dicionário no OpenSearch?
A tokenização é usada principalmente em dois momentos: durante a construção do índice e durante as consultas. Atualmente, os dicionários são configurações compartilhadas em todo o sistema, e dicionários personalizados não são suportados. No entanto, o OpenSearch suporta múltiplos métodos de tokenização, incluindo analisadores personalizados. Para mais detalhes, consulte "Field types and analyzer types" na documentação "User Guide".
P: Um documento contém "dinner served". Por que não o encontro ao buscar por "dinner served yet"?
O OpenSearch retorna um documento somente se todos os termos obrigatórios da consulta corresponderem. Neste exemplo em inglês, os termos são dinner, served e yet: query=default:'dinner' AND default:'served' AND default:'yet'. O documento contém dinner e served, mas não contém yet, portanto não é recuperado.
Nesse caso, configure o recurso de peso de termos na análise de consulta. Ele aplica RANK a termos menos importantes para melhorar a recuperação em consultas de cauda longa. Por exemplo, a consulta é reescrita automaticamente para query=default:'dinner' RANK default:'served' RANK default:'yet'. Assim, o documento é recuperado e classificado à frente de documentos que contêm apenas 'dinner'.
P: Busquei por "mx" e "player", e um documento contém "mxplayer". Por que esse documento não foi recuperado?
Para o inglês, a granularidade mínima de tokenização é o nível de palavra. O termo "mxplayer" no documento acima é tratado como um único token, logo buscas por "mx", "player" ou "mx player" não conseguem recuperar documentos que contenham "mxplayer".
P: O OpenSearch suporta busca em idiomas menos comuns?
Atualmente, o sistema suporta tokenização semântica apenas para chinês e inglês. Outros idiomas delimitados por espaços (como português e russo) suportam correspondência básica de palavras, mas não semântica (frases). Idiomas não delimitados por espaços (como japonês e coreano) não são suportados. Analisadores para tailandês e vietnamita já estão disponíveis. Para mais informações, consulte Text analyzers.
P: Nos resultados de busca, como separo products do mesmo membro para mostrar apenas o resultado mais relevante de cada um e, em seguida, exibir o total de itens?
Combine a cláusula Aggregate com a cláusula Distinct. A cláusula Distinct dispersa resultados da mesma categoria, enquanto a cláusula Aggregate coleta estatísticas sobre resultados dessa mesma categoria.
P: A busca possui mecanismo de cache?
Resultados retornados para consultas idênticas dentro de 5 minutos ficam em cache. O cache é ativado por padrão e não pode ser modificado ou desativado.
API e SDK
P: Qual é o endpoint para enviar dados usando o SDK?
O OpenSearch está implantado em várias regiões, e cada uma possui seu próprio endpoint de API. Para mais informações, consulte o endpoint de API nos detalhes da aplicação.
P: O upload de dados via SDK retornou OK, mas por que aparecem erros na página? Como obtenho as mensagens de erro?
Quando o SDK retorna o status OK, significa apenas que o sistema recebeu os dados. Erros ocorridos durante o processamento subsequente aparecem nos logs de erro da aplicação no console. Se os dados foram carregados com sucesso, mas não são encontrados na busca, verifique primeiro as informações nos logs de erro, corrija o problema e importe os dados novamente. No momento, não há API disponível para obter informações dos logs de erro.
Se o problema persistir, envie um ticket.