Unidad 3. Avanzado: Los predicados CONTAINS y FREETEXT (I)


Test si contiene: CONTAINS

Se utiliza para buscar, coincidencias exactas o aproximadas con palabras o frases, palabras próximas a otra dada en una cierta distancia, o coincidencias ponderadas.

CONTAINS puede buscar:

  • Una palabra o una frase.
  • El prefijo de una palabra o una frase.
  • Una palabra cerca de otra palabra.
  • Una palabra que sea derivada de otra (por ejemplo, las palabras controles, controladores, controlando y controlado son derivadas de control).
  • Una palabra que sea un sinónimo de otra palabra usando el diccionario de sinónimos (por ejemplo, la palabra metal puede tener sinónimos como aluminio y acero).
CONTAINS

       (  { nombre_columna | (lista_columnas) | * }

              ,  '< condicion_busqueda >'     

       [ , LANGUAGE idioma  ]

          )

    < condicion_busqueda > ::=

        { < termino_simple  >

        | < prefijo  >

        | <  generador >

        | <  proximo > 

        | < valor_ponderado  >

        } 

        | { ( <  condicion_busqueda > ) 

        [ { < AND > | < AND NOT  > | < OR > } ]

        < condicion_busqueda > [  ...n ]

        } 

    < AND > ::= { AND | & }

    < AND NOT > ::= { AND NOT | & !}

    < OR > ::= { OR | | }

  < termino_simple > ::= 

              palabra  | " frase "

  < prefijo > ::= 

         {  "palabra * " | "frase *" }

  < generador > ::= 

         FORMSOF  ( { INFLECTIONAL | THESAURUS } , < termino_simple > [ ,...n ] ) 

  < proximo > ::= 

         { <  termino_simple > | < prefijo > } 

         { {  NEAR | ~ }

         { <  termino_simple > | < prefijo > } 

         } [  ...n ]

     

    < valor_ponderado > ::= 

         ISABOUT 

            (  { { 

      < termino_simple > 

      | < prefijo > 

      | < generador > 

      | < proximo > 

      } 

       [ WEIGHT ( peso )  ] 

       } [ ,...n ] 

            )

    

Nombre_columna es la columna donde se busca. Las columnas de tipo char, varchar, nchar, nvarchar, text, ntext, image, xml y varbinary(max) son válidas para la búsqueda de texto.

Lista_columnas indica una lista de columnas separadas por comas.

El asterisco ( * ) especifica que todas las columnas de la tabla válidas para búsquedas de texto se deben utilizar en la condición de búsqueda. Las columnas de la cláusula CONTAINS deben proceder de una sola tabla. Si en la cláusula FROM hay más de una tabla, * se tiene que especificar con el nombre de la tabla.

Idioma Es el idioma en que el usuario genera la consulta.

Condición búsqueda especifica el texto que se va a buscar y las condiciones para obtener coincidencias.

Palabra es una cadena de caracteres sin espacios ni signos de puntuación.

Frase es una o varias palabras con espacios entre cada una de ellas.

Generador especifica la coincidencia de palabras cuando los términos simples incluyen variaciones de la palabra original que se busca para buscar palabras derivadas.

INFLECTIONAL especifica que se va a utilizar el analizador lingüístico dependiente del idioma en el término simple especificado. El comportamiento del analizador lingüístico se define en función de las reglas de análisis lingüístico de cada idioma concreto. El idioma neutro no tiene ningún analizador lingüístico asociado. El idioma de las columnas que se van a consultar se utiliza para hacer referencia al analizador lingüístico deseado. Si se especifica idioma, se utiliza el analizador lingüístico correspondiente a dicho idioma.

THESAURUS especifica que se utiliza el diccionario de sinónimos correspondiente al idioma de texto de la columna o el idioma especificado en la consulta. El patrón o patrones más largos de termino_simple se hacen coincidir con el diccionario de sinónimos y se generan términos adicionales para expandir o reemplazar el patrón original.

Próximo  especifica una coincidencia de palabras o frases que deben estar próximas entre sí. funciona de forma similar al operador AND: ambos requieren que existan varias palabras o frases en la columna examinada.

NEAR | ~ indica que la palabra o frase situada a la izquierda del operador NEAR o ~ tiene que estar bastante cerca de la palabra o frase situada a la derecha del operador NEAR o ~. Se pueden encadenar varios términos de proximidad.

<valor_ponderado> especifica que las filas coincidentes (devueltas por la consulta) coinciden con una lista de palabras y frases a las que se asigna opcionalmente un valor ponderado.
WEIGHT(peso) especifica el valor de ponderación como un número entre 0,0 y 1,0. Cada componente de < valor_ponderado > puede incluir un peso.

   Inicio  Adelante



.