|
|
Publicado enAyer a las 20:20
|
|
|
|

La búsqueda en texto completo es un componente opcional del motor de bases de datos SQL Server. Si no seleccionaste búsqueda de texto completo al instalar SQL Server, ejecuta de nuevo el instalador de SQL Server para añadirlo.
Resumen
Un índice de texto completo incluye una o más columnas basadas en caracteres en una tabla. Estas columnas pueden tener cualquiera de los siguientes tipos de datos: char, varchar, nchar, nvarchar, text, ntext, image, xml o varbinary(max) y FILESTREAM. Cada índice de texto completo crea un índice para una o más columnas de la tabla, y cada columna puede usar un lenguaje específico.
Las consultas de texto completo operan sobre palabras y frases según las reglas de idiomas específicos (como inglés o japonés), realizando así búsquedas de idiomas basadas en los datos de texto del índice de texto completo. Las consultas en texto completo pueden incluir palabras y frases simples, o múltiples formas de palabras o frases. Una consulta en texto completo devuelve todos los documentos que contienen al menos una coincidencia (también conocida como "hit"). Una coincidencia ocurre cuando el documento destino contiene todos los términos especificados en la consulta de texto completo y coincide con cualquier otro criterio de búsqueda (como la distancia entre términos coincidentes).
Instalación del Servicio de Búsqueda de Texto Completo de Linux Docker MSSQL 2022
Las referencias son las siguientes:
Comprueba si la función de búsqueda de texto completo de SQL SERVER está instalada
El comando es el siguiente:
Búsqueda de texto completo en SQL Server, índice de texto completo
Primero, crea una nueva biblioteca de pruebas e inserta datos de prueba. El script es el siguiente:
Crea una tabla de contenidos en texto completo
Se utiliza una tabla de contenidos en texto completo para almacenar el índice completo. Puedes crearlo directamente usando los siguientes scripts:
Crear índices de texto completo para tablas de bases de datos
Al crear un índice de texto completo para una tabla de base de datos, necesitas especificar el idioma correspondiente. Debido a que la segmentación de palabras varía entre idiomas, SQL Server utilizará la segmentación de palabras del idioma correspondiente para procesar los datos de la tabla. La búsqueda en texto completo de SQL Server soporta unos 50 idiomas diferentes, permitiéndote ver todos los idiomas compatibles consultando sys.fulltext_languages tablas. Mando:
Como se muestra a continuación:
A continuación, añadimos un índice de texto completo para Chino Simplificado a los campos de Título y Contenido de la tabla de Noticias:
Búsqueda en texto completo de predicados y funciones
Las consultas de texto completo utilizan predicados de texto completo (CONTIENEyTEXTO LIBRE) y funciones de texto completo (CONTAINSTABLEyLIBRETEXTTABLE)。 Son compatibles con la compleja sintaxis Transact-SQL, que soporta varias formas de términos de consulta.
La diferencia entre CONTAINS y FREETEXT
CONTAINS: El inicio de sesión del hipervínculo es visible.
Utiliza métodos precisos de emparejamiento para encontrar palabras o frases específicas en el texto. Soporta condiciones complejas de consulta, como la búsqueda por proximidad (por ejemplo, las palabras deben aparecer cerca unas de otras), la búsqueda con prefijos y más. Normalmente se utiliza en situaciones donde se necesita un control más específico sobre los resultados de búsqueda.
FREETEXT: El inicio de sesión del hipervínculo es visible.
Proporciona una experiencia de búsqueda más flexible y basada en el lenguaje natural. No se requieren criterios de búsqueda especiales; Analiza automáticamente el texto de entrada e intenta encontrar contenido relacionado. Es más adecuado para usuarios que quieren realizar búsquedas simples por palabras clave como Google, sin preocuparse por ubicaciones o formatos específicos.
Los comandos son los siguientes:
Como se muestra a continuación:
CONTAINSTABLE y FREETEXTTABLE
CONTAINSTABLE devuelve tablas que cumplen los criterios de consulta. En las sentencias SQL, podemos tratarlas como tablas normales, y las consultas que usan CONTAINSTABLE devolven un valor RANK y una CLAVE por cada fila. RANK se utiliza para indicar el grado de coincidencia de correlación, con valores entre 0~1000, y KEY es el ID de la tabla principal. FREETEXTTABLE primero segmenta las palabras y oraciones a consultar, luego busca la coincidencia. El comando es el siguiente:
Como se muestra a continuación:
Además, puedes consultar los resultados de la segmentación consultando sys.dm_fts_parser:
Como se muestra a continuación:
emitir
Pregunta: CONTAINS no admite consultas difusas por defecto. Si introduces CONTAINS(Column, 'apple'), coincidirá con la palabra raíz (por ejemplo, apples) pero no pineapple. Solución: Si se necesitan consultas difusas, deben colocarse antes y después de los comodinesAñade comillas dobles y un asterisco:CONTIENE(Columna, '"*manzana*"')
Referencia:
El inicio de sesión del hipervínculo es visible.
El inicio de sesión del hipervínculo es visible. |
Anterior:Plataforma de trabajo remoto, trabajo y trabajo freelance
|