

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
<a name="filtering"></a>

**nota**  
O suporte a recursos varia de acordo com o tipo de índice e a API de pesquisa usada. Consulte se esse recurso é compatível com o tipo de índice e a API de pesquisa que você está usando em [Tipos de índice](https://docs.aws.amazon.com/kendra/latest/dg/hiw-index-types.html).

Melhore os resultados da pesquisa ou a resposta da API de [consulta](https://docs.aws.amazon.com/kendra/latest/APIReference/API_Query.html) 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](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_KendraConfiguration.html). 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](https://docs.aws.amazon.com/lexv2/latest/dg/faq-bot-kendra-search.html). Você também pode fornecer um filtro para a resposta usando [AttributeFilter](https://docs.aws.amazon.com/kendra/latest/APIReference/API_AttributeFilter.html). 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](https://docs.aws.amazon.com/lexv2/latest/dg/built-in-intent-kendra-search.html).

## Facetas
<a name="search-facets"></a>

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](https://docs.aws.amazon.com/kendra/latest/APIReference/API_Query.html) 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](https://aws.amazon.com/contact-us/). 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 obter mais informações, consulte [Respostas de consulta e tipos de resposta](query-responses-types.md).

## Usando atributos do documento para filtrar os resultados da pesquisa
<a name="search-filtering"></a>

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 [AttributeFilter](https://docs.aws.amazon.com/kendra/latest/APIReference/API_AttributeFilter.html)para 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](https://docs.aws.amazon.com/kendra/latest/dg/query-responses-types.html). 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
<a name="filtering-document-attributes"></a>

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"]
        )
```