Descripción general de la búsqueda en el texto completo

En esta página, se describe qué es la búsqueda en el texto completo y cómo funciona.

Descripción general

La búsqueda en el texto completo permite compilar una aplicación que puede buscar en una tabla palabras, frases o números, en vez de solo buscar concordancias exactas campos estructurados. Las búsquedas de texto completo devuelven la información más reciente y con coherencia transaccional a tu aplicación. Spanner las capacidades de búsqueda en el texto completo también incluyen hacer correcciones ortográficas, automatizar la detección de idiomas de las entradas de búsqueda y clasificar los resultados de la búsqueda. Spanner expande automáticamente las búsquedas de texto para incluir concordancia de palabras aproximada sin configuración adicional.

Debes crear un índice de búsqueda en todas las columnas que quieras que estén disponibles. para las búsquedas en el texto completo. Spanner analiza los datos de esas columnas para identificar palabras individuales y agregarlas al índice de búsqueda. Spanner actualiza el índice de búsqueda con datos nuevos o modificados en cuanto se confirma en la base de datos.

  • Búsqueda de texto básica: Busca contenido mediante la totalidad o una parte de una palabra o frase para recibir resultados de manera confiable. Ejemplos de predicados de consulta:
    • Coincidencias con todas las palabras [tricolor rat terrier]
    • Palabras o frases exactas ["rat terrier"]
    • Cualquiera de estas palabras [miniatura OR estándar]
    • Palabra cercana [world AROUND(3) cup]
    • Subcadena [inicio*]
  • Búsqueda numérica: Realiza búsquedas de igualdad y desigualdad numéricas. Las búsquedas de igualdad coinciden con un número. Coincidencias de búsquedas de rango y desigualdad un número dentro de un rango específico.
  • Búsqueda basada en n-grama: Coincidencia de palabras con variaciones ortográficas, incluidas los nombres propios y los nombres propios. Este tipo de búsqueda también ayuda a hacer coincidir el texto de la consulta con nombres mal escritos, nombres con una forma alternativa de escritura y texto con otras variaciones ortográficas.
  • Búsquedas de Soundex: Coincide con palabras que suenan similares.

Funciones de búsqueda en el texto completo

La búsqueda de texto completo de Spanner tiene las siguientes funciones:

  • Resultados de la búsqueda ordenados: Calcula una puntuación para medir la eficacia de una consulta. coincide con un documento (por ejemplo, dando un peso más grueso para la columna_A). Usa Expresiones de SQL para personalizar la clasificación.
  • Fragmentos: Destaca el texto coincidente en el resultado de la búsqueda.
  • Asistencia global: Admite automáticamente la asignación de token en diferentes idiomas, incluido CJK la segmentación de clientes. La especificación manual del idioma te permite realizar ajustes adicionales.
  • Administración: Encuentra todos los casos de palabras específicas.
  • Corrección ortográfica: Corrige automáticamente las palabras con errores ortográficos en las consultas. para que coincida con la palabra escrita correctamente en storage. Por ejemplo, si el el usuario busca "jirafa" y encuentra documentos que contengan la palabra "jirafa".
  • Incorporación de sinónimos contextuales, incluidas las palabras irrelevantes: Se agregan automáticamente. sinónimos contextualmente relevantes para aumentar la recuperación. Por ejemplo, "la casa" coincide con "esta casa" y "foto de gato" coincide con "foto de gatito".
  • Traducción de números contextuales desde y hacia el texto: Coincide con el texto. versión de un número a la representación numérica y viceversa. Por ejemplo, "cinco gatos" coincide con "5 gatos".
  • Conversión automática de plural: Coincide con "cat" en “gatos”.

Conceptos de búsqueda en el texto completo

La búsqueda en el texto completo tiene los siguientes conceptos clave:

  • Un documento hace referencia a los datos que se pueden buscar en una fila determinada.
  • Un token hace referencia a cada palabra de un documento que se almacena en un índice de búsqueda.
  • Un proceso de asignación de token divide un documento en tokens.
  • Un tokenizador es una función de SQL que se usa para la asignación de token.
  • Un índice invertido almacena tokens. Usa consultas en SQL para buscar en índice invertido.

Para entender la búsqueda en el texto completo, veamos una aplicación de correo electrónico que utiliza una base de datos para almacenar los correos electrónicos de cada usuario. Cada fila corresponde a un solo correo electrónico. Cada el correo electrónico contiene columnas como asunto, cuerpo, remitente y destinatario. El correo electrónico usa la búsqueda en el texto completo para permitir que el usuario busque en su bandeja de entrada usando para las consultas en lenguaje natural:

  • La búsqueda admite consultas como Dallas OR Seattle. Aplicaciones Pueden ingresar directamente la entrada del usuario final del cuadro de búsqueda en el SQL SEARCH la función (con el lenguaje rquery).
  • Spanner usa índices de búsqueda para buscar documentos que coincidan en diferentes campos. Por ejemplo, una aplicación de correo electrónico puede emitir un para buscar "Nota importante" en la línea de asunto con “Presupuesto”. en el cuerpo del correo electrónico, y "John" en el nombre del remitente.

Además de la búsqueda en el texto completo, los índices de búsqueda tienen una variedad de usos, como lo siguiente:

  • Indexación de elementos en columnas de array Considera una aplicación que usa una columna de array para almacenar etiquetas asociadas con un elemento. Con los índices de búsqueda, la aplicación puede buscar eficientemente filas que contengan una etiqueta específica. Para obtener más información, consulta Asignación de token de array.

  • Encontrar datos que residen en la intersección de un conjunto de condiciones de consulta Por ejemplo, puede usar un conjunto arbitrario de atributos (color, tamaño, marca, calificación, etc.) para buscar un producto en un en tu catálogo de productos.

  • Usar condiciones de búsqueda numéricas, solas o en combinación con condiciones de texto completo Estos son algunos ejemplos de cuándo un índice de búsqueda es útil para las búsquedas numéricas:

    • Cuando se combina con una aplicación de texto completo. Por ejemplo, para encontrar un correo electrónico con el asunto Picture y un tamaño superior a 1 MB.
    • Cuando es parte de una intersección de condiciones que se describió anteriormente. Por ejemplo, para encontrar productos en los que color = "yellow" AND size = 14 AND rating >= 4.5.
    • Cuando buscas la intersección de columnas numéricas. Para ejemplo, considera una tabla que almacene las horas de inicio y finalización de un evento. Búsqueda los índices pueden implementar de forma eficiente una consulta que busque eventos que se produjo en un momento determinado: start_time <= @p AND end_time > @p.

Pasos de la búsqueda en el texto completo

En Spanner, la búsqueda en el texto completo requiere los siguientes pasos:

  1. Asigna tokens a un documento con las funciones del asignador de tokens de Spanner, como TOKENIZE_SUBSTRING. Para obtener más información, consulta Asignación de token.
  2. Crea un índice de búsqueda para guardar los tokens con el CREATE SEARCH INDEX Declaración DDL. Para obtener más información, consulta Busca índices.
  3. Consulta documentos en el índice de búsqueda con Spanner SEARCH . Para obtener más información, ve a Descripción general de las consultas.
  4. Clasificar los resultados de la consulta con Spanner SCORE . Para obtener más información, consulta Clasificar los resultados de la búsqueda.

Limitaciones

Precios

Spanner no cobra cargos adicionales cuando usas búsqueda en el texto completo, aunque la implementación de la búsqueda en el texto completo aumentar los costos debido a la necesidad de recursos adicionales de procesamiento y almacenamiento.

Para obtener más información, consulta Precios de Spanner.

¿Qué sigue?