Filtrado y ordenación de los datos

Completado

Es habitual en una solución de búsqueda que los usuarios quieran restringir los resultados de las consultas mediante el filtrado y la ordenación en función de los valores de los campos. Búsqueda de Azure AI es compatible con estas dos funcionalidades a través de la API de consulta de búsqueda.

Filtrado de los resultados

Puede aplicar filtros a las consultas de dos maneras:

  • Mediante la inclusión de criterios de filtro en una expresión de búsqueda simple.
  • Proporcionando una expresión de filtro de OData como un parámetro $filter con una expresión de búsqueda de sintaxis completa (full).

Puede aplicar un filtro a cualquier campo filtrable (filterable) del índice.

Por ejemplo, supongamos que quiere buscar documentos que contienen el texto London (Londres) y que tienen un campo author (autor) con el valor Reviewer (Revisor).

Puede lograr este resultado enviando la siguiente expresión de búsqueda simple:

search=London+author='Reviewer'
queryType=Simple

Como alternativa, puede usar un filtro de OData en un parámetro $filter con una expresión de búsqueda de Lucene completa (full) como la siguiente:

search=London
$filter=author eq 'Reviewer'
queryType=Full

Sugerencia

Las expresiones $filter de OData distinguen mayúsculas de minúsculas.

Filtrado con facetas

Las facetas son una manera útil de presentar a los usuarios criterios de filtrado basados en valores de campo en un conjunto de resultados. Funcionan mejor cuando un campo tiene un pequeño número de valores discretos que se pueden mostrar como vínculos u opciones en la interfaz de usuario.

Para usar facetas, debe especificar los campos clasificables (facetable) para los que quiere recuperar los valores posibles en una consulta inicial. Por ejemplo, puede usar los parámetros siguientes para devolver todos los valores posibles para el campo author:

search=*
facet=author

Los resultados de esta consulta incluyen una colección de valores de faceta discretos que puede mostrar en la interfaz de usuario para que el usuario los seleccione. Después, en una consulta posterior, puede usar el valor de faceta seleccionado para filtrar los resultados:

search=*
$filter=author eq 'selected-facet-value-here'

Ordenar resultados

De forma predeterminada, los resultados se ordenan en función de la puntuación de relevancia asignada por el proceso de consulta, con las coincidencias de puntuación más alta enumeradas primero. Pero puede invalidar este criterio de ordenación incluyendo un parámetro orderby de OData que especifique uno o más campos ordenables (sortable) y un criterio de ordenación (ascendente o descendente).

Por ejemplo, para ordenar los resultados de forma que los documentos modificados más recientemente aparezcan en primer lugar, puede usar los siguientes valores de parámetro:

search=*
$orderby=last_modified desc

Nota:

Para más información sobre el uso de filtros, consulte Filtros en Búsqueda de Azure AI. Para obtener información sobre cómo trabajar con los resultados, incluida la ordenación y el resaltado de aciertos, vea Procedimientos para trabajar con los resultados de búsqueda en Búsqueda de Azure AI.