Sugestões de consulta - Amazon Kendra

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Sugestões de consulta

As sugestões de consulta do Amazon Kendra podem ajudar seus usuários a digitar suas consultas de pesquisa com mais rapidez e orientar suas pesquisas.

Amazon Kendra sugere consultas relevantes para seus usuários com base em uma das seguintes opções:

  • Consultas populares no histórico de consultas ou no log de consultas

  • O conteúdo dos campos/atributos do documento

Defina sua preferência para usar o histórico de consultas ou os campos do documento definindo os SuggestionTypes como QUERY ou DOCUMENT_ATTRIBUTES e chamando GetQuerySuggestions. Por padrão, Amazon Kendra usa o histórico de consultas para basear sugestões. Se o histórico da consulta e os campos do documento estiverem ativados quando você ligar UpdateQuerySuggestionsConfige você não tiver definido sua SuggestionTypes preferência para usar os campos do documento, Amazon Kendra use o histórico da consulta.

Se usa o console, pode basear as sugestões de consulta no histórico da consulta ou nos campos do documento. Primeiro, selecione seu índice e, em seguida, selecione Sugestões de consulta em Enriquecimentos no menu de navegação. Em seguida, selecione Configurar sugestões de consulta. Depois de configurar as sugestões de consulta, você é direcionado para um console de pesquisa onde pode selecionar os campos Histórico da consulta ou Documento no painel direito e inserir uma consulta de pesquisa na barra de pesquisa.

Por padrão, as sugestões de consulta usando o histórico de consultas e os campos do documento são ativadas sem custo adicional. Desative esses tipos de sugestões de consulta a qualquer momento usando a API de UpdateQuerySuggestionsConfig. Para desativar as sugestões de consulta com base no histórico de consultas, defina Mode como DISABLED ao chamar UpdateQuerySuggestionsConfig. Para desativar as sugestões de consulta com base nos campos do documento, defina AttributeSuggestionsMode como INACTIVE na configuração dos campos do documento e, em seguida, chame UpdateQuerySuggestionsConfig>. Se usa o console, pode desativar as sugestões de consulta nas Configurações de sugestões de consulta.

As sugestões de consulta não diferenciam maiúsculas de minúsculas. Amazon Kendra converte o prefixo da consulta e a consulta sugerida em minúsculas, ignora todas as aspas simples e duplas e substitui vários caracteres de espaço em branco por um único espaço. Amazon Kendra corresponde a todos os outros caracteres especiais do jeito que estão. Amazon Kendra não mostra nenhuma sugestão se um usuário digitar menos de dois caracteres ou mais de 60 caracteres.

Sugestões de consulta usando o histórico de consultas

Você pode optar por sugerir consultas relevantes para seus usuários com base em consultas populares no histórico de consultas ou no registro de consultas. Amazon Kendra usa todas as consultas que seus usuários pesquisam e aprendem com essas consultas para fazer sugestões aos usuários. Amazon Kendra sugere consultas populares aos usuários quando eles começam a digitar a consulta. Amazon Kendra sugere uma consulta se o prefixo ou os primeiros caracteres da consulta corresponderem ao que o usuário começa a digitar como consulta.

Por exemplo, um usuário começa a digitar a consulta “próximos eventos”. O Amazon Kendra aprendeu com o histórico de consultas que muitos usuários pesquisaram “próximos eventos 2050" várias vezes. O usuário observa os “próximos eventos 2050" aparecerem diretamente abaixo da barra de pesquisa, preenchendo automaticamente a consulta de pesquisa. O usuário seleciona essa sugestão de consulta e o documento “Novos eventos: o que está acontecendo em 2050" é retornado nos resultados da pesquisa.

Você pode especificar como Amazon Kendra seleciona consultas qualificadas para sugerir aos seus usuários. Por exemplo, você pode especificar que uma sugestão de consulta deve ter sido pesquisada por pelo menos 10 usuários exclusivos (o padrão é três), ter sido pesquisada nos últimos 30 dias e não conter nenhuma palavra ou frase da sua lista de bloqueio. Amazon Kendra exige que uma consulta tenha pelo menos um resultado de pesquisa e contenha pelo menos uma palavra com mais de quatro caracteres.

Configurações para selecionar consultas para sugestões

Defina as seguintes configurações para selecionar consultas para sugestões usando a API de UpdateQuerySuggestionsConfig:

  • Modo – As sugestões de consulta usando o histórico de consultas são ENABLED ou LEARN_ONLY. O Amazon Kendra ativa as sugestões de consulta por padrão. O modo LEARN_ONLY desativa as sugestões de consulta. Se desativado, Amazon Kendra continua aprendendo sugestões, mas não faz sugestões de consulta aos usuários.

  • Janela de tempo do log de consultas – Quão recentes são suas consultas na janela de tempo do log de consultas. A janela de tempo é um valor inteiro para o número de dias do dia atual até os dias anteriores.

  • Consultas sem informações do usuário – Defina TRUE para incluir todas as consultas ou FALSE para incluir somente consultas com informações do usuário. Use essa configuração se seu aplicativo de pesquisa incluir informações do usuário, como a ID do usuário, quando um usuário fizer uma consulta. Por padrão, essa configuração não filtra as consultas se não houver informações específicas do usuário associadas às consultas. No entanto, você poderá usar essa configuração para fazer sugestões somente com base em consultas que incluam informações do usuário.

  • Usuários exclusivos – O número mínimo de usuários exclusivos que precisam pesquisar uma consulta para que a consulta se qualifique para sugerir aos seus usuários. Esse número é um valor inteiro.

  • Contagem de consultas – O número mínimo de vezes que uma consulta deve ser pesquisada para que ela esteja qualificada para ser sugerida aos seus usuários. Esse número é um valor inteiro.

Essas configurações afetam a forma como as consultas são selecionadas como consultas populares para sugerir aos seus usuários. A forma como você ajusta suas configurações dependerá de suas necessidades específicas, por exemplo:

  • Se seus usuários costumam pesquisar uma vez por mês, em média, você poderá definir o número de dias na janela de tempo do log de consultas para 30 dias. Ao usar essa configuração, você captura a maioria das consultas recentes de seus usuários antes que elas se tornem desatualizadas na janela de tempo.

  • Se apenas um pequeno número de suas consultas incluir informações do usuário e você não quiser sugerir consultas com base em uma amostra pequena, defina as consultas para incluir todos os usuários.

  • Se definir consultas populares como sendo pesquisadas por pelo menos 10 usuários exclusivos e pesquisadas pelo menos 100 vezes, defina os usuários exclusivos como 10 e a contagem de consultas como 100.

Atenção

Suas alterações nas configurações podem não entrar em vigor imediatamente. Acompanhe as alterações nas configurações usando a API de DescribeQuerySuggestionsConfig. O tempo para que suas configurações atualizadas entrem em vigor depende das atualizações que você fizer e do número de consultas de pesquisa em seu índice. O Amazon Kendra atualiza automaticamente as sugestões a cada 24 horas, depois de alterar uma configuração ou depois de aplicar uma lista de bloqueio.

CLI

Para recuperar sugestões de consulta

aws kendra get-query-suggestions \ --index-id index-id \ --query-text "query-text" \ --suggestion-types '["QUERY"]' \ --max-suggestions-count 1 // If you want to limit the number of suggestions

Para atualizar as sugestões de consulta

Por exemplo, para alterar a janela de tempo do log de consultas e o número mínimo de vezes que uma consulta deve ser pesquisada:

aws kendra update-query-suggestions-config \ --index-id index-id \ --query-log-look-back-window-in-days 30 \ --minimum-query-count 100
Python

Para recuperar sugestões de consulta

import boto3 from botocore.exceptions import ClientError kendra = boto3.client("kendra") print("Get query suggestions.") # Provide the index ID index_id = "index-id" # Provide the query text query_text = "query" # Provide the query suggestions type query_suggestions_type = "QUERY" # If you want to limit the number of suggestions num_suggestions = 1 try: query_suggestions_response = kendra.get_query_suggestions( IndexId = index_id, QueryText = query_text, SuggestionTypes = query_suggestions_type, MaxSuggestionsCount = num_suggestions ) # Print out the suggestions you received if ("Suggestions" in query_suggestions_response.keys()) { for (suggestion: query_suggestions_response["Suggestions"]) { print(suggestion["Value"]["Text"]["Text"]); } } except ClientError as e: print("%s" % e) print("Program ends.")

Para atualizar as sugestões de consulta

Por exemplo, para alterar a janela de tempo do log de consultas e o número mínimo de vezes que uma consulta deve ser pesquisada:

import boto3 from botocore.exceptions import ClientError import pprint import time kendra = boto3.client("kendra") print("Updating query suggestions settings/configuration for an index.") # Provide the index ID index_id = "index-id" # Configure the settings you want to update minimum_query_count = 100 query_log_look_back_window_in_days = 30 try: kendra.update_query_suggestions_config( IndexId = index_id, MinimumQueryCount = minimum_query_count, QueryLogLookBackWindowInDays = query_log_look_back_window_in_days ) print("Wait for Amazon Kendra to update the query suggestions.") while True: # Get query suggestions description of settings/configuration query_sugg_config_response = kendra.describe_query_suggestions_config( IndexId = index_id ) # If status is not UPDATING, then quit status = query_sugg_config_response["Status"] print(" Updating query suggestions config. Status: " + status) if status != "UPDATING": break time.sleep(60) except ClientError as e: print("%s" % e) print("Program ends.")

Sugestões claras, mantendo o histórico de consultas

Esclareça as sugestões de consulta usando a API de ClearQuerySuggestions. A limpeza de sugestões exclui somente as sugestões de consulta existentes, não as consultas no histórico de consultas. Quando você limpa as sugestões, Amazon Kendra aprende novas sugestões com base nas novas consultas adicionadas ao registro de consultas a partir do momento em que você apagou as sugestões.

CLI

Para limpar as sugestões de consulta

aws kendra clear-query-suggestions \ --index-id index-id
Python

Para limpar as sugestões de consulta

import boto3 from botocore.exceptions import ClientError kendra = boto3.client("kendra") print("Clearing out query suggestions for an index.") # Provide the index ID index_id = "index-id" try: kendra.clear_query_suggestions( IndexId = index_id ) # Confirm last cleared date-time and that there are no suggestions query_sugg_config_response = kendra.describe_query_suggestions_config( IndexId = index_id ) print("Query Suggestions last cleared at: " + str(query_sugg_config_response["LastClearTime"])); print("Number of suggestions available from the time of clearing: " + str(query_sugg_config_response["TotalSuggestionsCount"])); except ClientError as e: print("%s" % e) print("Program ends.")

Não há sugestões disponíveis

Se não vê sugestões de consulta, talvez por um dos seguintes motivos:

  • Não há consultas suficientes em seu índice com as quais você Amazon Kendra possa aprender.

  • Suas configurações de sugestões de consulta são muito rígidas, fazendo com que a maioria das consultas seja filtrada das sugestões.

  • Você apagou sugestões recentemente e Amazon Kendra ainda precisa de tempo para que novas consultas se acumulem a fim de aprender novas sugestões.

Verifique suas configurações atuais usando a API de DescribeQuerySuggestionsConfig.

Sugestões de consulta usando campos do documento

Opte por sugerir consultas relevantes para seus usuários com base no conteúdo dos campos do documento. Em vez de usar o histórico de consultas para sugerir outras consultas relevantes populares, você pode usar as informações contidas em um campo do documento que são úteis para o preenchimento automático da consulta. Amazon Kendra procura conteúdo relevante em campos definidos como Suggestable e que estejam estreitamente alinhados com a consulta do seu usuário. Em seguida, Amazon Kendra sugere esse conteúdo para seu usuário quando ele começar a digitar sua consulta.

Por exemplo, se você especificar o campo de título no qual basear as sugestões e um usuário começar a digitar a consulta “Como a Amazon Ken... ', o título mais relevante 'Como Amazon Kendra funciona' pode ser sugerido para completar automaticamente a pesquisa. O usuário vê “Como Amazon Kendra funciona” aparecer diretamente abaixo da barra de pesquisa, preenchendo automaticamente a consulta de pesquisa. O usuário seleciona essa sugestão de consulta e o documento “Como Amazon Kendra funciona” é retornado nos resultados da pesquisa.

Use o conteúdo de qualquer campo de String e tipo de documento StringList, para sugerir uma consulta definindo o campo Suggestable como parte da configuração de seus campos para sugestões de consulta. Você também poderá usar uma lista de bloqueios para que os campos de documentos sugeridos que contenham determinadas palavras ou frases não sejam exibidos aos seus usuários. Use uma lista de bloqueio. A lista de bloqueios se aplica se você definir sugestões de consulta para usar o histórico de consultas ou os campos do documento.

Configurações para selecionar campos para sugestões

Defina as seguintes configurações para selecionar campos do documento para sugestões de uso do AttributeSuggestionsConfig e chamada da API deUpdateQuerySuggestionsConfig para atualizar as configurações no nível do índice:

  • Modo de sugestões de campos/atributos — As sugestões de consulta usando campos de documentos são ou. ACTIVE INACTIVE Amazon Kendra ativa as sugestões de consulta por padrão.

  • Campos/atributos sugestionáveis – Os nomes de campo ou chaves de campo nos quais basear sugestões. Esses campos devem ser definidos como TRUE para Suggestable, como parte da configuração dos campos. Substitua a configuração dos campos no nível da consulta e, ao mesmo tempo, manter a configuração no nível do índice. Use a GetQuerySuggestionsAPI para alterar AttributeSuggestionConfig no nível da consulta. Essa configuração no nível da consulta pode ser útil para experimentar rapidamente o uso de diferentes campos do documento sem precisar atualizar a configuração no nível do índice.

  • Campos/atributos adicionais – Os campos adicionais que você deseja incluir na resposta para uma sugestão de consulta. Esses campos são usados para fornecer informações adicionais na resposta; no entanto, eles não são usados para basear sugestões.

Atenção

Suas alterações nas configurações podem não entrar em vigor imediatamente. Acompanhe as alterações nas configurações usando a API de DescribeQuerySuggestionsConfig. O tempo para que suas configurações atualizadas entrem em vigor depende das atualizações que você fizer. Amazon Kendra atualiza automaticamente as sugestões a cada 24 horas, depois de alterar uma configuração ou depois de aplicar uma lista de bloqueio.

CLI

Para recuperar sugestões de consulta e substituir a configuração dos campos do documento no nível da consulta, em vez de precisar alterar a configuração no nível do índice.

aws kendra get-query-suggestions \ --index-id index-id \ --query-text "query-text" \ --suggestion-types '["DOCUMENT_ATTRIBUTES"]' \ --attribute-suggestions-config '{"SuggestionAttributes":'["field/attribute key 1", "field/attribute key 2"]', "AdditionalResponseAttributes":'["response field/attribute key 1", "response field/attribute key 2"]'}' \ --max-suggestions-count 1 // If you want to limit the number of suggestions

Para atualizar as sugestões de consulta

Por exemplo, para alterar a configuração dos campos do documento no nível do índice:

aws kendra update-query-suggestions-config \ --index-id index-id \ --attribute-suggestions-config '{"SuggestableConfigList": '[{"SuggestableConfig": "_document_title", "Suggestable": true}]', "AttributeSuggestionsMode": "ACTIVE"}'
Python

Para recuperar sugestões de consulta e substituir a configuração dos campos do documento no nível da consulta, em vez de precisar alterar a configuração no nível do índice.

import boto3 from botocore.exceptions import ClientError kendra = boto3.client("kendra") print("Get query suggestions.") # Provide the index ID index_id = "index-id" # Provide the query text query_text = "query" # Provide the query suggestions type query_suggestions_type = "DOCUMENT_ATTRIBUTES" # Override fields/attributes configuration at query level configuration = {"SuggestionAttributes": '["field/attribute key 1", "field/attribute key 2"]', "AdditionalResponseAttributes": '["response field/attribute key 1", "response field/attribute key 2"]' } # If you want to limit the number of suggestions num_suggestions = 1 try: query_suggestions_response = kendra.get_query_suggestions( IndexId = index_id, QueryText = query_text, SuggestionTypes = [query_suggestions_type], AttributeSuggestionsConfig = configuration, MaxSuggestionsCount = num_suggestions ) # Print out the suggestions you received if ("Suggestions" in query_suggestions_response.keys()) { for (suggestion: query_suggestions_response["Suggestions"]) { print(suggestion["Value"]["Text"]["Text"]); } } except ClientError as e: print("%s" % e) print("Program ends.")

Para atualizar as sugestões de consulta

Por exemplo, para alterar a configuração dos campos do documento no nível do índice:

import boto3 from botocore.exceptions import ClientError import pprint import time kendra = boto3.client("kendra") print("Updating query suggestions settings/configuration for an index.") # Provide the index ID index_id = "index-id" # Configure the settings you want to update at the index level configuration = {"SuggestableConfigList": '[{"SuggestableConfig": "_document_title", "Suggestable": true}]', "AttributeSuggestionsMode": "ACTIVE" } try: kendra.update_query_suggestions_config( IndexId = index_id, AttributeSuggestionsConfig = configuration ) print("Wait for Amazon Kendra to update the query suggestions.") while True: # Get query suggestions description of settings/configuration query_sugg_config_response = kendra.describe_query_suggestions_config( IndexId = index_id ) # If status is not UPDATING, then quit status = query_sugg_config_response["Status"] print(" Updating query suggestions config. Status: " + status) if status != "UPDATING": break time.sleep(60) except ClientError as e: print("%s" % e) print("Program ends.")

Controle do usuário nos campos do documento

Aplique a filtragem de contexto do usuário aos campos do documento nos quais deseja basear as sugestões de consulta. Isso filtra as informações do campo do documento com base no acesso do usuário ou do grupo aos documentos. Por exemplo, um estagiário pesquisa no portal da empresa e não tem acesso a um documento ultrassecreto da empresa. Portanto, as consultas sugeridas com base no título do documento ultrassecreto, ou em qualquer outro campo sugestionável, não são mostradas ao estagiário.

Indexe seus documentos com uma lista de controle de acesso (ACL), definindo quais usuários e grupos têm acesso a quais documentos. Em seguida, aplique a filtragem de contexto do usuário aos campos do seu documento para sugestões de consulta. A filtragem de contexto de usuário atualmente definida para seu índice é a mesma filtragem de contexto de usuário aplicada à configuração dos campos do documento para sugestões de consulta. A filtragem de contexto do usuário faz parte da configuração dos campos do documento. Você usa o AttributeSuggestionsGetConfig e chama o GetQuerySuggestions.

Bloqueie determinadas consultas ou conteúdos de campos do documento de sugestões

Uma lista de bloqueio Amazon Kendra impede de sugerir determinadas consultas aos seus usuários. Uma lista de bloqueio é uma lista de palavras ou frases que você deseja excluir das sugestões de consulta. Amazon Kendra exclui consultas que contêm uma correspondência exata das palavras ou frases na lista de bloqueio.

Use uma lista de bloqueio para se proteger contra palavras ou frases ofensivas que geralmente aparecem no histórico de consultas ou nos campos do documento e que o Amazon Kendra pode selecionar como sugestões. Uma lista de bloqueio também pode Amazon Kendra impedir a sugestão de consultas que contenham informações que não estão prontas para serem divulgadas ou anunciadas publicamente. Por exemplo, seus usuários frequentemente consultam sobre uma próxima versão de um possível novo produto. No entanto, você não quer sugerir o produto porque não está pronto para lançá-lo. Você poderá bloquear as consultas que contêm o nome do produto e as informações do produto das sugestões.

Crie uma lista de bloqueio para consultas usando a API de CreateQuerySuggestionsBlockList. Você coloca cada palavra ou frase de bloco em uma linha separada em um arquivo de texto. Em seguida, você carrega o arquivo de texto no seu bucket do Amazon S3 e fornece o caminho ou a localização do arquivo. Amazon S3 Amazon Kendra atualmente suporta a criação de apenas uma lista de bloqueio.

Você pode substituir o arquivo de texto das palavras e frases bloqueadas no seu Amazon S3 bucket. Para atualizar a lista de bloqueios Amazon Kendra, use a UpdateQuerySuggestionsBlockListAPI.

Use a API de DescribeQuerySuggestionsBlockList para obter o status da sua lista de bloqueios. O DescribeQuerySuggestionsBlockList também poderá fornecer outras informações úteis, como:

  • Quando sua lista de bloqueios foi atualizada pela última vez

  • Quantas palavras ou frases estão na sua lista de bloqueio atual

  • Mensagens de erro úteis ao criar uma lista de bloqueio

Você também poderá usar a API de ListQuerySuggestionsBlockLists para obter uma lista dos resumos da lista de bloqueios para um índice.

Para excluir sua lista de bloqueios, use a DeleteQuerySuggestionsBlockListAPI.

Suas atualizações na lista de bloqueios podem não entrar em vigor imediatamente. Acompanhar as atualizações usando a API DescribeQuerySuggestionsBlockList.

CLI

Para criar uma lista de bloqueios

aws kendra create-query-suggestions-block-list \ --index-id index-id \ --name "block-list-name" \ --description "block-list-description" \ --source-s3-path "Bucket=bucket-name,Key=query-suggestions/block_list.txt" \ --role-arn role-arn

Para atualizar uma lista de bloqueios

aws kendra update-query-suggestions-block-list \ --index-id index-id \ --name "new-block-list-name" \ --description "new-block-list-description" \ --source-s3-path "Bucket=bucket-name,Key=query-suggestions/new_block_list.txt" \ --role-arn role-arn

Para excluir uma lista de bloqueio

aws kendra delete-query-suggestions-block-list \ --index-id index-id \ --id block-list-id
Python

Para criar uma lista de bloqueios

import boto3 from botocore.exceptions import ClientError import pprint import time kendra = boto3.client("kendra") print("Create a query suggestions block list.") # Provide a name for the block list block_list_name = "block-list-name" # Provide an optional description for the block list block_list_description = "block-list-description" # Provide the IAM role ARN required for query suggestions block lists block_list_role_arn = "role-arn" # Provide the index ID index_id = "index-id" s3_bucket_name = "bucket-name" s3_key = "query-suggestions/block_list.txt" source_s3_path = { 'Bucket': s3_bucket_name, 'Key': s3_key } try: block_list_response = kendra.create_query_suggestions_block_list( Description = block_list_description, Name = block_list_name, RoleArn = block_list_role_arn, IndexId = index_id, SourceS3Path = source_s3_path ) print(block_list_response) block_list_id = block_list_response["Id"] print("Wait for Amazon Kendra to create the block list.") while True: # Get block list description block_list_description = kendra.describe_query_suggestions_block_list( Id = block_list_id, IndexId = index_id ) # If status is not CREATING, then quit status = block_list_description["Status"] print("Creating block list. Status: " + status) if status != "CREATING": break time.sleep(60) except ClientError as e: print("%s" % e) print("Program ends.")

Para atualizar uma lista de bloqueios

import boto3 from botocore.exceptions import ClientError import pprint import time kendra = boto3.client("kendra") print("Update a block list for query suggestions.") # Provide the block list name you want to update block_list_name = "new-block-list-name" # Provide the block list description you want to update block_list_description = "new-block-list-description" # Provide the IAM role ARN required for query suggestions block lists block_list_role_arn = "role-arn" # Provide the block list ID block_list_id = "block-list-id" # Provide the index ID index_id = "index-id" s3_bucket_name = "bucket-name" s3_key = "query-suggestions/new_block_list.txt" source_s3_path = { 'Bucket': s3_bucket_name, 'Key': s3_key } try: kendra.update_query_suggestions_block_list( Id = block_list_id, IndexId = index_id, Description = block_list_description, Name = block_list_name, RoleArn = block_list_role_arn, SourceS3Path = source_s3_path ) print("Wait for Amazon Kendra to update the block list.") while True: # Get block list description block_list_description = kendra.describe_query_suggestions_block_list( Id = block_list_id, IndexId = index_id ) # If status is not UPDATING, then the update has finished status = block_list_description["Status"] print("Updating block list. Status: " + status) if status != "UPDATING": break time.sleep(60) except ClientError as e: print("%s" % e) print("Program ends.")

Para excluir uma lista de bloqueio

import boto3 from botocore.exceptions import ClientError kendra = boto3.client("kendra") print("Delete a block list for query suggestions.") # provide the block list ID query_suggestions_block_list_id = "query-suggestions-block-list-id" # Provide the index ID index_id = "index-id" try: kendra.delete_query_suggestions_block_list( Id = query_suggestions_block_list_id, IndexId = index_id ) except ClientError as e: print("%s" % e) print("Program ends.")