La interpretación de consultas de Cloud Search convierte automáticamente los operadores y filtros de una consulta del usuario en una consulta estructurada basada en operadores. La función usa operadores definidos en el esquema y documentos indexados para deducir la intención de la búsqueda. Esto permite que los usuarios realicen búsquedas con una cantidad mínima de palabras clave y obtengan resultados precisos.
La presentación de los resultados depende del nivel de confianza. La confianza aumenta cuando las cadenas de búsqueda aparecen de forma coherente en campos de esquema específicos (p.ej., "Tom Hanks" en un campo actors). La confianza disminuye cuando las cadenas aparecen en prosa general. Un nivel de confianza alto muestra solo los resultados interpretados, mientras que un nivel de confianza más bajo los combina con los resultados estándar de palabras clave.
Ejemplo de interpretación de consultas
Considera una base de datos que contiene información sobre películas. En la figura 1, se muestra una búsqueda de muestra y su interpretación.
En este ejemplo, la interpretación de la búsqueda hace lo siguiente:
- Determina a partir del esquema que los objetos de nivel superior son
objecttype:movies. - Analiza documentos para identificar dónde aparece "action". Si aparece principalmente en un campo
genre, aumenta la confianza de que se trata de un valor de propiedad para ese campo.
La interpretación resultante es la siguiente:
actor:"tom hanks" genre:action objecttype:movies
La interpretación de consultas es automática para todos los usuarios, pero puedes optimizarla estructurando tu esquema como se describe en las siguientes secciones.
Diseña la estructura de tu esquema para la interpretación de consultas
Optimizar tu esquema garantiza que te beneficies de la interpretación de consultas.
Habilita la interpretación de nombres visibles
La interpretación de la búsqueda usa objectDefinitions y propertyDefinitions para interpretar las búsquedas. Crea nombres visibles intuitivos con displayLabel para las propiedades, objectDisplayLabel para los objetos y operatorName para los operadores.
En este ejemplo, se muestran nombres visibles intuitivos para un objeto de película:
{
"objectDefinitions": [{
"name": "movie",
"options": {
"displayOptions": { "objectDisplayLabel": "Films" }
},
"propertyDefinitions": [{
"name": "genre",
"isReturnable": true,
"textPropertyOptions": {
"operatorOptions": { "operatorName": "genre" }
},
"displayOptions": { "displayLabel": "Category" }
}]
}]
}
Estos nombres visibles permiten interpretaciones como las siguientes:
- "películas de acción" ->
genre:action object:movies - “movies with genre action or thriller” ->
objecttype:movies genre:(action OR thriller) - "películas de la categoría de comedia" ->
genre:comedy objecttype:movies
Habilita las interpretaciones de fechas, números y ordenamiento
Define lessThanOperatorName y greaterThanOperatorName en IntegerOperatorOptions para todas las propiedades de fechas y números. Para habilitar el ordenamiento, establece isSortable.
En este ejemplo, se habilitan las siguientes opciones:
{
"objectDefinitions": [{
"propertyDefinitions": [
{
"name": "runtime",
"isSortable": true,
"integerPropertyOptions": {
"operatorOptions": {
"operatorName": "runtime",
"lessThanOperatorName": "runtimelessthan",
"greaterThanOperatorName": "runtimegreaterthan"
}
}
},
{
"name": "releasedate",
"isSortable": true,
"datePropertyOptions": {
"operatorOptions": {
"operatorName": "releasedate",
"lessThanOperatorName": "releasedbefore",
"greaterThanOperatorName": "releasedafter"
}
}
}
]
}]
}
Esta configuración permite interpretaciones como las siguientes:
- “Películas estrenadas este año” ->
objecttype:movies releasedafter:2019-1-1 releasedbefore:2019-12-31 - “movies with runtime less than 90” ->
objecttype:movies runtimelessthan:90
Habilita la interpretación de operadores reservados
Usa operadores integrados, como type, before, after y objecttype:
- Completa
updateTimeenItemMetadatapara usarbeforeyafter. - Completa
mimeTypeenItemMetadatapara la detección automática. Por ejemplo, "videos de acción" enumera documentos con tipos de MIME de video.
Limitaciones de la interpretación de consultas
- Solo funciona con las siguientes LCA de fuentes de datos:
- Es de dominio público.
- La fuente de datos es pública.
- La mayoría de los documentos comparten la misma LCA heredada.
- Nombres de operadores compartidos (p.ej.,
priorityyseverity, ambos con una confianza más baja (de 0 a 3) - De forma predeterminada, la interpretación usa minúsculas para los valores de los campos, a menos que uses
exactMatchWithOperator. - No se admite el operador
source. - Términos combinados de operador y texto libre (p.ej., "p0 cases severity:s0") no se interpretan.
- Los resultados siempre se combinan con los ordenados por relevancia.