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 muestran los datos confirmados más recientes que son coherentes a nivel de las transacciones a tu aplicación. Las capacidades de búsqueda de texto completo de Spanner también incluyen la corrección ortográfica, la automatización de la detección de idioma de la entrada de búsqueda y la clasificación de los resultados de la búsqueda. Spanner expande automáticamente las búsquedas de texto para incluir concordancia de palabras aproximada.

Debes crear un índice de búsqueda en las columnas que deseas que estén disponibles para las búsquedas de texto completo. Spanner analiza los datos de esas columnas para identificar palabras individuales que se agregarán 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:
    • Coincidencia con todas las palabras [tricolor rat terrier]
    • Palabras o frases exactas ["rat terrier"]
    • Cualquiera de estas palabras [miniatura O estándar]
    • Palabra cercana [copa AROUND(3) mundial]
    • 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 con errores ortográficos, nombres con ortografías alternativas y texto con otras variaciones ortográficas.
  • Búsquedas de Soundex: Encuentra palabras que suenan de manera similar.

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 clasificados: Calcula una puntuación para medir el nivel de coincidencia de una consulta con un documento (por ejemplo, otorga un mayor peso a columna_A). Usa expresiones SQL para personalizar el ranking.
  • 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.
  • Gobernanza: Encuentra cada ocurrencia de palabras específicas.
  • Corrección ortográfica: Corrige automáticamente las palabras con errores ortográficos en las búsquedas para que coincidan con la palabra con la ortografía correcta en el almacenamiento. Por ejemplo, si el el usuario busca "jirafa" y encuentra documentos que contienen 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 plural automática: Hace coincidir "cat" con "cats".

Conceptos de la 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 de SQL para buscar en el índice invertido.

Para comprender la búsqueda de texto completo, analicemos una aplicación que use una base de datos para almacenar canciones de cada cantante. Cada fila corresponde a una sola canción. Cada canción contiene columnas como título, letra, cantante y álbum. La aplicación usa la búsqueda en el texto completo para permitir que un usuario busque una canción con consultas en lenguaje natural:

  • La búsqueda admite consultas que usan el operador OR, como Prince OR Camille Las aplicaciones pueden alimentar directamente la entrada del usuario el cuadro de búsqueda en el SQL SEARCH la función (con el sintaxis de rquery).
  • Spanner usa índices de búsqueda para buscar documentos que coincidan en diferentes campos. Por ejemplo, una aplicación podría emitir una consulta para buscar "cry" en el asunto con "so cold" en la letra y "Prince" como el cantante.

Otros usos de los índices de búsqueda

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 filas que contengan una etiqueta específica de manera eficiente. Para ver más información, consulta Asignación de token de array.

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

  • Usar condiciones de búsqueda numérica, por separado o en combinación con el texto completo condiciones. Algunos ejemplos de cuándo un índice de búsqueda es útil para búsquedas:

    • 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 forma parte de una intersección de condiciones descritas anteriormente. Por ejemplo, para encontrar productos en los que color = "yellow" AND size = 14 AND rating >= 4.5.
    • Cuando se busca la intersección de columnas numéricas. Por ejemplo, considera una tabla que almacena 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.

    Para obtener más información, consulta Índices numéricos.

Pasos para 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. Clasifica los resultados de la consulta con la función SCORE de Spanner. Para obtener más información, consulta Cómo 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?