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 elFacets
en el parámetroQuery
API.
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 elFacetResults
matriz 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 conSoporteFacet
un 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», obtienesFacetResults
con 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,Query
devuelve 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_number
atributo solo es aplicable aANSWER
tipos 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 bienSourceURI
las 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 elContainsAny
oContainsAll
filtros 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 suLocations
atributo 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_uri
y_author
los atributos de documento se incluyen en la respuesta de un documento.
response=kendra.query( QueryText = query, IndexId = index, RequestedDocumentAttributes = ["_source_uri", "_author"] )