Compartir a través de


Predicado CONTAINSSEMANTIC

El predicado CONTAINSSEMANTIC forma parte de la cláusula WHERE y admite la búsqueda semántica dentro del contenido indizado. La cláusula se puede usar para buscar texto o imágenes en función de su similitud semántica, en lugar de simplemente coincidencias de palabras clave exactas.

A continuación se muestra la sintaxis básica del predicado CONTAINSSEMANTIC:

...CONTAINSSEMANTIC (ContentType, [<fulltext_column or #list>,] search_text_phrase, LCID) ...

El parámetro ContentType especifica si la búsqueda es para texto o imágenes. Los valores permitidos son "text" o "image".

La referencia fulltext_column es opcional. Con ella, puede limitar la búsqueda a una sola columna o a un grupo de columnas en el que se prueba el predicado CONTAINSSEMANTIC. Cuando fulltext_column se especifica como "*", se buscan todas las propiedades de texto indexadas. Aunque no es necesario que la columna sea una propiedad de texto, los resultados podrían no tener sentido si la columna es algún otro tipo de datos. El nombre de columna puede ser un identificador normal o delimitado y debe separarlo de la condición por una coma. Si no se especifica ningún fulltext_column , se usa la columna System.Search.Contents, que es el cuerpo del documento.

La parte LCID del predicado especifica la configuración regional de búsqueda. Esto indica al motor de búsqueda que use el segmentador de palabras y las formas flexivas adecuadas para la consulta de búsqueda. Para especificar la configuración regional, proporcione el identificador de código de idioma estándar (LCID) de Windows. Por ejemplo, 1033 es el LCID para Inglés de Estados Unidos. Coloque el LCID como último elemento dentro de los paréntesis de la cláusula CONTAINSSEMANTIC. Para obtener información importante sobre la búsqueda y los idiomas, consulte Uso de búsquedas localizadas.

La indexación tradicional y la búsqueda siguen funcionando sin problemas para todos los paquetes de idioma admitidos en Windows. Sin embargo, la búsqueda mejorada solo está optimizada para estos idiomas:

Language Valor LCID
Inglés (EE. UU.) 1033
Inglés (CA) 4105
Inglés (AU) 3081
Inglés (GB) 2057
Francés (FR) 1036
Francés (Canadá) 3084
Alemán (DE) 1031
Español (ES) 3082
Español (MX) 2058
Japonés (JP) 1041
Chino (simplificado) 2052

Nota:

La configuración regional de búsqueda predeterminada es la configuración regional predeterminada del sistema.

Para obtener más información sobre los valores LCID, consulta Referencia del identificador de código de idioma (LCID) de Windows.

La parte de search_text_phrase debe incluirse entre comillas simples para las palabras simples o comillas dobles para las frases, y consta de uno o varios términos de búsqueda de contenido que se combinan con los operadores lógicos AND o OR. Puede usar el operador unario opcional NOT después de un operador AND para negar el valor lógico de un término de búsqueda de contenido.

Nota:

El operador NOT solo puede aparecer después de Y. No puede usar el operador NOT si solo hay una condición de coincidencia o después del operador OR .

Puede usar paréntesis para agrupar y anidar términos de búsqueda de contenido. En la tabla siguiente se describe el orden de prioridad de los operadores lógicos.

Orden (prioridad) Operador lógico
Primero (más alto) NOT
Segundo AND
Tercero (más bajo) OR

Los operadores lógicos del mismo tipo son asociativos y no hay ningún orden de cálculo especificado. Por ejemplo, (A AND B) AND (C AND D) se puede calcular (B AND C) AND (A AND D) sin ningún cambio en el resultado lógico.

Example

En el ejemplo siguiente se muestra una consulta para documentos e imágenes relacionados con la frase "familia en una playa" mediante la cláusula CONTAINSSEMANTIC .

SELECT * FROM SystemIndex  
WHERE CONTAINSSEMANTIC('text', *, 'family on a beach', 1033)  
OR CONTAINSSEMANTIC('image', *, 'family on a beach', 1033)  
RANK BY MERGE(merge_operation)

Referencia

Cláusula WHERE

Conceptual

Predicados de Texto completo

Predicados Sin Texto Completo