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.
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)