Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

SQL SERVER Fulltext accents in Spanish

Estas en el tema de SQL SERVER Fulltext accents in Spanish en el foro de SQL Server en Foros del Web. When you run the function for fulltext sys.dm_fts_parser returns different results if you write the word accented or not. The system interprets them as different ...
  #1 (permalink)  
Antiguo 04/01/2016, 05:26
 
Fecha de Ingreso: enero-2016
Mensajes: 4
Antigüedad: 8 años, 3 meses
Puntos: 0
SQL SERVER Fulltext accents in Spanish

When you run the function for fulltext sys.dm_fts_parser returns different results if you write the word accented or not. The system interprets them as different words.

Query 1:
Código SQL:
Ver original
  1. SELECT * FROM sys.dm_fts_parser(N'FORMSOF(FREETEXT, "Técnicos")', 3082, 0, 0); Results: tecnicos,tecnico,tecnicas,tecnica
Query 2:
Código SQL:
Ver original
  1. SELECT * FROM sys.dm_fts_parser(N'FORMSOF(FREETEXT, "Tecnicos")', 3082, 0, 0); Results: tecnicos
WhWhat is the solution to return the same results Técnicos and Tecnicos?

Última edición por gnzsoloyo; 04/01/2016 a las 05:32
  #2 (permalink)  
Antiguo 04/01/2016, 05:32
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: SQL SERVER Fulltext accents in Spanish

Por favor, @diaripàr, este es un foro en español. Se pregutna en español y se responde en español.
El inglés solo lo usamos cuando copiamos textos para documentar las respuestas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 04/01/2016, 15:54
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: SQL SERVER Fulltext accents in Spanish

cual es el collation que tiene tu server?
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #4 (permalink)  
Antiguo 05/01/2016, 05:17
 
Fecha de Ingreso: enero-2016
Mensajes: 4
Antigüedad: 8 años, 3 meses
Puntos: 0
Respuesta: SQL SERVER Fulltext accents in Spanish

Server:
SQL_Latin1_General_CP1_CI_AS

Base de datos:
Modern_Spanish_CI_AI
  #5 (permalink)  
Antiguo 05/01/2016, 09:08
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: SQL SERVER Fulltext accents in Spanish

Ahi esta el problema tienes la base de datos en CI AI que quiere decir Case Insensitive Acent Insensitive lo que quiere decir que las palabras con acentos las va a tomar como palabras diferentes, cambia el Collation a CI AS
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #6 (permalink)  
Antiguo 05/01/2016, 09:42
 
Fecha de Ingreso: enero-2016
Mensajes: 4
Antigüedad: 8 años, 3 meses
Puntos: 0
Respuesta: SQL SERVER Fulltext accents in Spanish

Para que trate 'a' y 'á' de manera idéntica hay que usar Accent insesitive (AI).
Case sensitive (AS) trata las palabras acentuadas como palabras diferentes.

En esta pagina viene bien explicado: http://zarez.net/?p=719
  #7 (permalink)  
Antiguo 05/01/2016, 10:05
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: SQL SERVER Fulltext accents in Spanish

Gracias por la explicacion, se me fue lo del collation, ya probaste haciendo una consulta simple algo tipo select * from tabla where campo like 'a', si esta bien el collation deberia de regresarte los valores que tienen una a ya sea con acento o sin acento
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #8 (permalink)  
Antiguo 07/01/2016, 10:44
 
Fecha de Ingreso: enero-2016
Mensajes: 4
Antigüedad: 8 años, 3 meses
Puntos: 0
Respuesta: SQL SERVER Fulltext accents in Spanish

Aún teniendo el collaction (AI), para el texto completo (Fulltext) sigue siendo palabras diferentes técnicos y tecnicos.

Cuando consultas "técnicos" busca textos que contengan técnico, técnicos..etc
mientras "tecnicos" sin acento solo busca textos que contengan tecnicos o técnicos, no va a mostrar los textos que contengan tecnico o técnico en singular.
  #9 (permalink)  
Antiguo 07/01/2016, 12:36
 
Fecha de Ingreso: junio-2011
Mensajes: 289
Antigüedad: 12 años, 10 meses
Puntos: 15
Respuesta: SQL SERVER Fulltext accents in Spanish

Mira no se si te sirva, prueba con lo siguiente:

Cambié el COLLATE de la columna a buscar con LIKE

Código SQL:
Ver original
  1. CREATE TABLE #temp
  2. (
  3. valor VARCHAR(100)
  4. )
  5.  
  6.  
  7. ALTER TABLE #temp
  8. ALTER COLUMN valor VARCHAR(10) COLLATE Modern_Spanish_CI_AI
  9.  
  10. INSERT INTO #temp VALUES ('técnico')
  11. INSERT INTO #temp VALUES ('tecnico')
  12. INSERT INTO #temp VALUES ('prueba')
  13.  
  14. SELECT * FROM #temp WHERE valor LIKE '%te%'


El resultado es

Código SQL:
Ver original
  1. técnico
  2. tecnico

Etiquetas: fulltext, server, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:28.