Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Cosmos DB en Fabric ofrece una eficaz característica de búsqueda de texto completo como disponible con carácter general. Esta característica está diseñada para mejorar las funcionalidades de búsqueda nativas de las aplicaciones sin necesidad de un servicio de búsqueda externo para la búsqueda básica de texto completo.
¿Qué es la búsqueda de texto completo?
Cosmos DB en Fabric ofrece indexación y búsqueda de texto completo, diseñado para mejorar las cargas de trabajo de búsqueda y recuperación. Esta característica incluye técnicas avanzadas de procesamiento de texto, como lematización, detención de eliminación de palabras y tokenización, lo que permite búsquedas de texto eficaces y eficaces a través de un índice de texto especializado. La búsqueda de texto completo también incluye puntuación de texto completo con una función que evalúa la relevancia de los documentos en una consulta de búsqueda determinada. BM25, o Best Matching 25, tiene en cuenta factores como la frecuencia de términos, la frecuencia inversa de documentos y la longitud del documento para puntuar y clasificar los documentos. Esto ayuda a garantizar que los documentos más relevantes aparezcan en la parte superior de los resultados de búsqueda, mejorando la precisión y la utilidad de las búsquedas de texto.
Búsqueda de texto completo es ideal para varios escenarios, entre los que se incluyen:
Comercio electrónico: busca rápidamente productos basados en descripciones, revisiones y otros atributos de texto.
Administración de contenido: busque eficazmente artículos, blogs y documentos.
Soporte técnico al cliente: recupere incidencias de soporte técnico pertinentes, preguntas más frecuentes y artículos de knowledge base.
Contenido del usuario: analice y busque contenido generado por el usuario, como publicaciones y comentarios.
RAG para bots de chat: mejore las respuestas de bot de chat recuperando información relevante de grandes cuerpos de texto, mejorando la precisión y relevancia de las respuestas.
Aplicaciones de inteligencia artificial multiagente: habilite varios agentes de IA para buscar y analizar de forma colaborativa grandes cantidades de datos de texto, lo que proporciona información completa y matizadas.
Uso de la búsqueda de texto completo
Configure un contenedor con una directiva de texto completo y un índice de texto completo.
Inserte los datos con propiedades de texto.
Ejecute consultas en los datos mediante funciones del sistema de búsqueda de texto completo.
Configuración de directivas e índices de contenedor para la búsqueda híbrida
Para usar las funcionalidades de búsqueda de texto completo, primero debe definir dos directivas:
Directiva de texto completo de nivel de contenedor que define las rutas de acceso que contienen texto para las nuevas funciones del sistema de consulta de texto completo.
Índice de texto completo agregado a la directiva de indexación que permite una búsqueda eficaz.
Puede ejecutar consultas de búsqueda de texto completo sin estas directivas, pero no usan el índice de texto completo y podrían consumir más unidades de solicitud (RU). Sin esta directiva, las búsquedas de texto completo también pueden tardar más tiempo en ejecutarse. Se recomienda definir directivas de índice y contenedor de texto completo.
Directiva de texto completo
Para cada propiedad de texto que desee configurar para la búsqueda de texto completo, debe declarar tanto path de la propiedad con texto y language del texto. Una directiva de texto completo simple puede ser:
{
"defaultLanguage": "en-US",
"fullTextPaths": [
{
"path": "/text",
"language": "en-US"
}
]
}
La definición de varias rutas de acceso de texto se realiza fácilmente agregando otro elemento a la matriz fullTextPolicy:
{
"defaultLanguage": "en-US",
"fullTextPaths": [
{
"path": "/text1",
"language": "en-US"
},
{
"path": "/text2",
"language": "en-US"
}
]
}
Importante
Los caracteres comodín (*, []) no se admiten actualmente en la directiva de texto completo ni en el índice de texto completo.
Para obtener más información y ejemplos de configuración de una directiva de texto completo, consulte ejemplos de directivas de indexación de texto completo.
Compatibilidad con varios idiomas
La compatibilidad con varios idiomas permite indexar y buscar texto en idiomas más allá del inglés. Aplica la tokenización, la lematización y la eliminación de palabras irrelevantes específicas del lenguaje para obtener resultados de búsqueda más precisos.
Nota:
La compatibilidad con varios idiomas está en versión preliminar temprana. El rendimiento y la calidad de la búsqueda pueden ser diferentes de la búsqueda de texto completo en inglés. Por ejemplo, en este momento la eliminación de palabras irrelevantes solo está disponible para inglés (en-us). La funcionalidad está sujeta a cambios a través de la evolución de la versión preliminar.
Para más información sobre las limitaciones relacionadas con la compatibilidad con varios idiomas, consulte Limitaciones de texto completo de Cosmos DB.
Índice de texto completo
Las operaciones de búsqueda de texto completo deben usar un índice de texto completo. Un índice de texto completo se puede definir fácilmente en cualquier directiva de índice de Cosmos DB en Fabric según el ejemplo siguiente:
{
"indexingMode": "consistent",
"automatic": true,
"includedPaths": [
{
"path": "/*"
}
],
"excludedPaths": [
{
"path": "/\"_etag\"/?"
},
],
"fullTextIndexes": [
{
"path": "/text"
}
]
}
Al igual que con las directivas de texto completo, los índices de texto completo se pueden definir en varias rutas de acceso:
{
"indexingMode": "consistent",
"automatic": true,
"includedPaths": [
{
"path": "/*"
}
],
"excludedPaths": [
{
"path": "/\"_etag\"/?"
},
],
"fullTextIndexes": [
{
"path": "/text"
},
{
"path": "/text2"
}
]
}
Consultas de búsqueda de texto completo
Las operaciones de búsqueda y puntuación de texto completo se realizan mediante las siguientes funciones del sistema en el lenguaje de consulta de Cosmos DB en Fabric:
FULLTEXTCONTAINS: devuelvetruesi una cadena determinada está contenida en la propiedad especificada de un documento. Esta función es útil en unaWHEREcláusula cuando desea asegurarse de que las palabras clave específicas se incluyen en los documentos devueltos por la consulta.FULLTEXTCONTAINSALL: devuelvetruesi todas las cadenas especificadas están contenidas en la propiedad especificada de un documento. Esta función es útil en unaWHEREcláusula cuando desea asegurarse de que se incluyen varias palabras clave en los documentos devueltos por la consulta.FULLTEXTCONTAINSANY: devuelvetruesi alguna de las cadenas especificadas está contenida en la propiedad especificada de un documento. Esta función es útil en unaWHEREcláusula cuando desea asegurarse de que al menos una de las palabras clave se incluye en los documentos devueltos por la consulta.FULLTEXTSCORE: use esta función en unaORDER BY RANKcláusula para devolver documentos ordenados por su puntuación de texto completo, colocando los documentos más relevantes (puntuación más alta) en la parte superior y el menos relevante (puntuación más baja) en la parte inferior.
Estos son algunos ejemplos de cada función en uso.
FULLTEXTCONTAINS
En este ejemplo, queremos obtener los primeros 10 resultados donde la frase "bicicleta roja" está contenida en la propiedad c.text.
SELECT TOP 10
*
FROM
container c
WHERE
FULLTEXTCONTAINS(c.text, "red bicycle")
FULLTEXTCONTAINSALL
En este ejemplo, queremos obtener los primeros 10 resultados donde las palabras clave "rojo" y "bicicleta" están contenidas en la propiedad c.text, pero no necesariamente juntas.
SELECT TOP 10 *
FROM c
WHERE FULLTEXTCONTAINSALL(c.text, "red", "bicycle")
FULLTEXTCONTAINSANY
En este ejemplo, queremos obtener los primeros 10 resultados donde las palabras clave "rojo" y "bicicleta" o "skateboard" se encuentran en la propiedad c.text.
SELECT TOP 10
*
FROM
container c
WHERE
FULLTEXTCONTAINS(c.text, "red") AND
FULLTEXTCONTAINSANY(c.text, "bicycle", "skateboard")
FULLTEXTSCORE
En este ejemplo, queremos obtener los primeros 10 resultados en los que se incluyen "mountain" y "bicycle" y se ordenan por orden de relevancia. Es decir, los documentos que tienen estos términos con más frecuencia deben aparecer más arriba en la lista.
SELECT TOP 10
*
FROM
container c
ORDER BY RANK
FULLTEXTSCORE(c.text, "bicycle", "mountain")
Importante
FULLTEXTSCORE solo se puede usar en la cláusula ORDER BY RANK y no se puede proyectar en la instrucción SELECT o en una cláusula WHERE.
Búsqueda aproximada
La búsqueda aproximada puede mejorar la resistencia a errores tipográficos y variaciones de texto. Puede especificar una "distancia" permitida (número de ediciones) entre el término de búsqueda y el texto del documento, lo que permite que las coincidencias cercanas se consideren un acierto. La distancia máxima que se puede especificar es 2 (dos ediciones).
Nota:
La búsqueda aproximada está en versión preliminar anticipada. El rendimiento, la calidad y la funcionalidad están sujetos a cambios en la evolución de la versión preliminar.
SELECT TOP 10
*
FROM
container c
WHERE
FULLTEXTCONTAINS(c.text, {"term": "red", "distance":1}, {"term": "bicycle", "distance":2})