¿Por qué la indexación de texto completo de SQL no arroja resultados para las palabras que contienen #?

votos
18

Por ejemplo, mi consulta es similar a la siguiente usando SQL Server 2005:

SELECT * FROM Table WHERE FREETEXT(SearchField, 'c#') 

Tengo un índice de texto completo definido para usar la columna SearchField que devuelve resultados al usar:

SELECT * FROM Table WHERE SearchField LIKE '%c#%'

Creo que # es una letra especial, entonces, ¿cómo permito que FREETEXT funcione correctamente para la consulta anterior?

Publicado el 04/08/2008 a las 06:51
fuente por usuario
En otros idiomas...                            


2 respuestas

votos
1

Citando una página de ayuda muy replicada sobre el lenguaje de consulta del Servicio de Index Server:

Para usar caracteres especialmente tratados como &, |, ^, #, @, $, (,), en una consulta, encierre su consulta entre comillas (").

Hasta donde yo sé, MSSQLel servicio de Index Server también realiza la búsqueda de texto completo , por lo que podría ser útil.

Respondida el 04/08/2008 a las 07:10
fuente por usuario

votos
10

El # char se indexa como puntuación y, por lo tanto, se ignora, por lo que parece que eliminaremos la letra C de las listas de ignorar de indexación de palabras.

¡Lo probé localmente después de hacer eso y reconstruir los índices y obtengo resultados!

Considerar el uso de un diferente lenguaje separador de palabras en la columna indexada, para que esos caracteres especiales no sean ignorados.

EDITAR: También encontré esta información :

c # se indexa como c (si c no está en su lista de palabras irrelevantes, vea más en las listas de palabras irrelevantes), pero C # está indexado como C # (en SQL 2005 y SQL 2000 ejecutándose en Win2003 independientemente de si C o c está en su ruido lista de palabras). No es solo C # que se almacena como C #, sino cualquier letra mayúscula seguida de #. Por el contrario, c ++ (y cualquier otra letra de recuadro inferior seguida de un ++) se indexa como c (independientemente de si c está en su lista de palabras de ruido).

Respondida el 04/08/2008 a las 07:39
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more