Filtragem e pesquisa de facetas - 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á.

Filtragem e pesquisa de facetas

Melhore os resultados da pesquisa ou a resposta da API de consulta usando filtros. Os filtros restringem os documentos na resposta aos que se aplicam diretamente à consulta. Para criar sugestões de pesquisa facetada, use a lógica booleana para filtrar atributos específicos do documento da resposta ou documentos que não correspondem a critérios específicos. Especifique as facetas usando o parâmetro Facets na API de Query.

Para pesquisar documentos com os quais você indexou Amazon Lex, use Amazon Kendra a AMAZON. KendraSearchIntent. Para ver um exemplo de configuração Amazon Kendra com Amazon Lex, consulte Criação de um bot de perguntas frequentes para um Amazon Kendra índice. Você também pode fornecer um filtro para a resposta usando AttributeFilter. Esse é o filtro de consulta em JSON durante a configuração do AMAZON.KendraSearchIntent. Para fornecer um filtro de atributo ao configurar uma intenção de pesquisa no console, acesse o editor de intenção e escolha a consulta no Amazon Kendra para fornecer um filtro de consulta em JSON. Para obter mais informações sobre o AMAZON.KendraSearchIntent, consulte o guia de documentação do Amazon Lex.

Facetas

As facetas são visualizações com escopo de um conjunto de resultados de pesquisa. Por exemplo, forneça resultados de pesquisa para cidades em todo o mundo, onde os documentos são filtrados por uma cidade específica à qual estão associados. Ou crie facetas para exibir os resultados de um autor específico.

Use um atributo de documento ou campo de metadados associado a um documento como uma faceta para que seus usuários possam pesquisar por categorias ou valores dentro dessa faceta. Você também poderá exibir facetas aninhadas nos resultados da pesquisa para que seus usuários possam pesquisar não apenas por uma categoria ou campo, mas também por uma subcategoria ou subcampo.

O exemplo a seguir mostra como obter informações de faceta do atributo personalizado “Cidade”.

response=kendra.query( QueryText = query, IndexId = index, Facets = [ { "DocumentAttributeKey" : "City" } ] )

Use facetas aninhadas para restringir ainda mais a pesquisa. Por exemplo, o atributo do documento ou a faceta “Cidade” inclui um valor chamado “Seattle”. Além disso, o atributo ou faceta do documento "CityRegion" inclui os valores “Norte” e “Sul” para documentos atribuídos a “Seattle”. Exiba facetas aninhadas com suas contagens nos resultados da pesquisa para que os documentos possam ser pesquisados não apenas por cidade, mas também por uma região dentro de uma cidade.

Observe que facetas aninhadas podem afetar a latência da consulta. Uma regra geral é que quanto mais facetas aninhadas você usa, maior o impacto potencial na latência. Outros fatores que afetam a latência incluem o tamanho médio dos documentos indexados, o tamanho do seu índice, consultas altamente complexas e a carga geral do seu índice do Amazon Kendra .

O exemplo a seguir mostra como obter informações de facetas para o atributo personalizado CityRegion "", como uma faceta aninhada em “Cidade”.

response=kendra.query( QueryText = query, IndexId = index, Facets = [ { "DocumentAttributeKey" : "City", "Facets": [ { "DocumentAttributeKey" : "CityRegion" } ] } ] )

As informações de facetas, como a contagem de documentos, são retornadas na matriz de respostas dos FacetResults. Você usa o conteúdo para exibir sugestões de pesquisa facetada em seu aplicativo. Por exemplo, se o atributo do documento “Cidade” contiver a cidade à qual uma pesquisa pode ser aplicada, use essas informações para exibir uma lista de pesquisas de cidades. Os usuários podem escolher uma cidade para filtrar os resultados da pesquisa. Para fazer a pesquisa facetada, chame a API de consulta e use o atributo de documento escolhido para filtrar os resultados.

Exiba até 10 valores de faceta por faceta para uma consulta e somente uma faceta aninhada dentro de uma faceta. Se você deseja aumentar esses limites, entre em contato com o Suporte. Se você quiser limitar o número de valores de faceta por faceta a menos de 10, especifique isso no objeto Facet.

O exemplo de resposta do JSON a seguir mostra facetas com escopo definido no atributo do documento “Cidade”. A resposta inclui a contagem de documentos para o valor da faceta.

{ 'FacetResults': [ { 'DocumentAttributeKey': 'City', 'DocumentAttributeValueCountPairs': [ { 'Count': 3, 'DocumentAttributeValue': { 'StringValue': 'Dubai' } }, { 'Count': 3, 'DocumentAttributeValue': { 'StringValue': 'Seattle' } }, { 'Count': 1, 'DocumentAttributeValue': { 'StringValue': 'Paris' } } ] } ]

Você também poderá exibir informações de facetas de uma faceta aninhada, como uma região dentro de uma cidade, para filtrar ainda mais os resultados da pesquisa.

O exemplo de resposta JSON a seguir mostra facetas com escopo no atributo de documento "CityRegion", como uma faceta aninhada em “Cidade”. A resposta inclui a contagem de documentos para os valores das facetas aninhadas.

{ 'FacetResults': [ { 'DocumentAttributeKey': 'City', 'DocumentAttributeValueCountPairs': [ { 'Count': 3, 'DocumentAttributeValue': { 'StringValue': 'Dubai' }, 'FacetResults': [ { 'DocumentAttributeKey': 'CityRegion', 'DocumentAttributeValueCountPairs': [ { 'Count': 2, 'DocumentAttributeValue': { 'StringValue': 'Bur Dubai' } }, { 'Count': 1, 'DocumentAttributeValue': { 'StringValue': 'Deira' } } ] } ] }, { 'Count': 3, 'DocumentAttributeValue': { 'StringValue': 'Seattle' }, 'FacetResults': [ { 'DocumentAttributeKey': 'CityRegion', 'DocumentAttributeValueCountPairs': [ { 'Count': 1, 'DocumentAttributeValue': { 'StringValue': 'North' } }, { 'Count': 2, 'DocumentAttributeValue': { 'StringValue': 'South' } } ] } ] }, { 'Count': 1, 'DocumentAttributeValue': { 'StringValue': 'Paris' }, 'FacetResults': [ { 'DocumentAttributeKey': 'CityRegion', 'DocumentAttributeValueCountPairs': [ { 'Count': 1, 'DocumentAttributeValue': { 'StringValue': 'City center' } } ] } ] } } ] }

Ao usar um campo de lista de sequência de caracteres para criar facetas, os resultados de facetas retornados são baseados no conteúdo da lista de sequência de caracteres. Por exemplo, se você tiver um campo de lista de sequência de caracteres que contém dois itens, um com a lista “bassê”, “cachorro salsicha” e outro com o valor “husky”, você receberá três facetas do FacetResults.

Para ter mais informações, consulte Respostas de consulta e tipos de resposta.

Usando atributos do documento para filtrar os resultados da pesquisa

Por padrão, a Query retorna todos os resultados da pesquisa. Para filtrar as respostas, realize operações lógicas nos atributos do documento. Por exemplo, se quiser documentos apenas para uma cidade específica, poderá filtrar os atributos personalizados do documento “Cidade” e “Estado”. Você usa AttributeFilterpara criar uma operação booleana nos filtros que você fornece.

A maioria dos atributos pode ser usada para filtrar respostas para todos os tipos de resposta. No entanto, o atributo _excerpt_page_number só é aplicável aos tipos de resposta ANSWER ao filtrar respostas.

O exemplo a seguir mostra como realizar uma operação E lógica filtrando em uma cidade específica, Seattle, e estado, Washington.

response=kendra.query( QueryText = query, IndexId = index, AttributeFilter = {'AndAllFilters': [ {"EqualsTo": {"Key": "City","Value": {"StringValue": "Seattle"}}}, {"EqualsTo": {"Key": "State","Value": {"StringValue": "Washington"}}} ] } )

O exemplo a seguir mostra como realizar uma operação OU lógica para quando qualquer uma das chaves Fileformat, Author ou SourceURI corresponder aos valores especificados.

response=kendra.query( QueryText = query, IndexId = index, AttributeFilter = {'OrAllFilters': [ {"EqualsTo": {"Key": "Fileformat","Value": {"StringValue": "AUTO_DETECT"}}}, {"EqualsTo": {"Key": "Author","Value": {"StringValue": "Ana Carolina"}}}, {"EqualsTo": {"Key": "SourceURI","Value": {"StringValue": "https://aws.amazonaws.com/234234242342"}}} ] } )

Para campos de StringList, use os filtros de atributos ContainsAny ou ContainsAll para retornar documentos com a sequência de caracteres especificada. O exemplo a seguir mostra como retornar todos os documentos que têm os valores “Seattle” ou “Portland” em seu atributo de Locations personalizado.

response=kendra.query( QueryText = query, IndexId = index, AttributeFilter = { "ContainsAny": { "Key": "Locations", "Value": { "StringListValue": [ "Seattle", "Portland"] }} } )

Filtrando os atributos de cada documento nos resultados da pesquisa

Amazon Kendra retorna os atributos do documento para cada documento nos resultados da pesquisa. Filtre determinados atributos do documento que deseja incluir na resposta como parte dos resultados da pesquisa. Por padrão, todos os atributos do documento atribuídos a um documento são retornados na resposta.

No exemplo a seguir, somente os atributos _source_uri e _author do documento são incluídos na resposta de um documento.

response=kendra.query( QueryText = query, IndexId = index, RequestedDocumentAttributes = ["_source_uri", "_author"] )