Consultas de filtrado - Amazon Kendra

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Consultas de filtrado

Puede mejorar la respuesta desde elQueryAPI mediante filtros. Los filtros restringen los documentos de la respuesta a los que se aplican directamente a la consulta. Para crear sugerencias de búsqueda facetadas, utilice la lógica booleana para filtrar atributos de documento específicos de la respuesta o documentos que no coinciden con criterios específicos. Puede especificar facetas mediante elFacetsen el parámetroQueryAPI.

Para buscar documentos indexados conAmazon KendraparaAmazon Lex, useAMAZON.KendraSearchIntent. Para ver un ejemplo de cómo configurarAmazon KendraconAmazon Lex, consulteCreación de un bot de preguntas frecuentes sobre unAmazon KendraÍndice. También puede proporcionar un filtro para la respuesta medianteFiltro de atributos. Este es el filtro de consultas en JSON al configurarAMAZON.KendraSearchIntent. Para proporcionar un filtro de atributos al configurar una intención de búsqueda en la consola, vaya al editor de intents y elijaAmazon Kendraconsulta para proporcionar un filtro de consultas en JSON. Para ver ejemplos del uso de un filtro de atributos en JSON, consulteUso de atributos de documento para filtrar los resultados de búsqueda. Para obtener más información acerca deAMAZON.KendraSearchIntent, consulte elAmazon Lexguía de documentación.

Facetas

Las facetas son vistas de ámbito de un conjunto de resultados de búsqueda. Por ejemplo, puede proporcionar resultados de búsqueda para ciudades de todo el mundo, donde los documentos se filtran por una ciudad específica a la que están asociados. O bien, puede crear facetas para mostrar los resultados de un autor específico.

Puede utilizar un atributo de documento o un campo de metadatos asociados a un documento como faceta para que los usuarios puedan buscar por categorías o valores dentro de esa faceta. También puede mostrar las facetas anidadas en los resultados de búsqueda para que los usuarios puedan buscar no solo por categoría o campo, sino también por una subcategoría o subcampo.

En el siguiente ejemplo se muestra cómo obtener información de facetas para el atributo personalizado «Ciudad».

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

Puede utilizar facetas anidadas para restringir aún más la búsqueda. Por ejemplo, el atributo o faceta del documento «Ciudad» incluye un valor denominado «Seattle». Además, el atributo o faceta del documento «CityRegion» incluye los valores «Norte» y «Sur» para los documentos asignados a «Seattle». Puede mostrar las facetas anidadas con sus recuentos en los resultados de búsqueda para que los documentos se puedan buscar no solo por ciudad sino también por una región dentro de una ciudad.

Tenga en cuenta que las facetas anidadas podrían afectar a la latencia de las consultas. Una regla general es que cuantas más facetas anidadas utilice, mayor será el impacto potencial en la latencia. Otros factores que afectan a la latencia incluyen el tamaño medio de los documentos indexados, el tamaño del índice, las consultas muy complejas y la carga general de suAmazon Kendraindex.

En el siguiente ejemplo se muestra cómo obtener información de facetas para el atributo personalizado «CityRegion», como faceta anidada dentro de «Ciudad».

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

La información de facetas, como el recuento de documentos, se devuelve en elFacetResultsmatriz de respuestas. Utiliza el contenido para mostrar sugerencias de búsqueda facetadas en tu aplicación. Por ejemplo, si el atributo del documento «Ciudad» contiene la ciudad a la que podría aplicarse una búsqueda, utilice esa información para mostrar una lista de búsquedas de ciudades. Los usuarios pueden elegir una ciudad para filtrar los resultados de búsqueda. Para realizar la búsqueda facetada, llameQueryy utilice el atributo de documento elegido para filtrar los resultados. Para ver un ejemplo, consulte Uso de atributos de documento para filtrar los resultados de búsqueda.

Puede mostrar hasta 10 valores de faceta por faceta para una consulta y solo una faceta anidada dentro de una faceta. Si desea aumentar estos límites, póngase en contacto conSoporte. Si desea limitar el número de valores de faceta por faceta a menos de 10, puede especificarlo en elFacetun objeto.

En la siguiente respuesta JSON de ejemplo se muestran las facetas del ámbito del atributo de documento «Ciudad». La respuesta incluye el recuento de documentos del valor de faceta.

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

También puede mostrar información de facetas de una faceta anidada, como una región dentro de una ciudad, para filtrar aún más los resultados de búsqueda.

En la siguiente respuesta JSON de ejemplo se muestran las facetas del ámbito del atributo de documento «CityRegion», como faceta anidada dentro de «Ciudad». La respuesta incluye el recuento de documentos de los valores de faceta anidados.

{ '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' } } ] } ] } } ] }

Cuando utiliza un campo de lista de cadenas para crear facetas, los resultados de facetas devueltos se basan en el contenido de la lista de cadenas. Por ejemplo, si tienes un campo de lista de cadenas que contiene dos elementos, uno con la lista «dachshund», «salchicha perro» y otro con el valor «husky», obtienesFacetResultscon tres facetas.

Para obtener más información, consulte Respuestas a consultas.

Uso de atributos de documento para filtrar los resultados de búsqueda

Por defecto,Querydevuelve todos los resultados de búsqueda. Para filtrar las respuestas, puede realizar operaciones lógicas en los atributos del documento. Por ejemplo, si solo desea documentos para una ciudad específica, puede filtrar los atributos de documento personalizados «Ciudad» y «Estado». UsarUse elAttributeFilterparámetro de entrada para crear una operación booleana en los filtros suministrados.

La mayoría de los atributos se pueden utilizar para filtrar las respuestas de todostipos de respuestas. Sin embargo, el_excerpt_page_numberatributo solo es aplicable aANSWERtipos de respuestas al filtrar las respuestas.

En el ejemplo de la siguiente se muestra cómo realizar una operación AND lógica filtrando en una ciudad específica,Seattle, y declara,Washington.

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

En el siguiente ejemplo se muestra cómo realizar una operación de OR lógica para cuando cualquiera de lasFileformat,Author, o bienSourceURIlas claves coinciden con los 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"}}} ] } )

ParaStringList, utilice elContainsAnyoContainsAllfiltros de atributos para devolver documentos con la cadena especificada. En el ejemplo siguiente se muestra cómo devolver todos los documentos que tienen los valores «Seattle» o «Portland» en suLocationsatributo personalizado.

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

Filtrar los atributos de cada documento en los resultados de búsqueda

Amazon Kendradevuelve los atributos de documento de cada documento de los resultados de búsqueda. Puede filtrar determinados atributos de documento que desea incluir en la respuesta como parte de los resultados de búsqueda. De forma predeterminada, todos los atributos de documento asignados a un documento se devuelven en la respuesta.

En el ejemplo siguiente, solo el_source_uriy_authorlos atributos de documento se incluyen en la respuesta de un documento.

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