Estoy haciendo una consulta de búsqueda de texto completo de MS SQL Server. Necesito escapar caracteres especiales para poder buscar un término específico que contenga caracteres especiales. ¿Hay una función incorporada para escapar de una cadena de búsqueda de texto completo? Si no, ¿cómo lo harías?Caracteres de escape de búsqueda de texto completo de SQL Server?
Respuesta
Malas noticias: no hay manera. Buenas noticias: no lo necesita (ya que de todos modos no lo ayudará).
He enfrentado un problema similar en uno de mis proyectos. Mi opinión es que, si bien la construcción de un índice de texto, SQL Server trata todos los caracteres especiales como delimitadores de palabra y por lo tanto:
- Su palabra con tal carácter se representa como dos (o más) palabras en el índice de texto completo.
- Estos caracteres se eliminan y no aparecen en un índice.
Considere tenemos la siguiente tabla con un índice correspondiente en texto completo de la misma (que se omite):
CREATE TABLE [dbo].[ActicleTable]
(
[Id] int identity(1,1) not null primary key,
[ActicleBody] varchar(max) not null
);
consideraremos más adelante se añade filas a la tabla:
INSERT INTO [ActicleTable] values ('digitally improvements folders')
INSERT INTO [ActicleTable] values ('digital"ly improve{ments} fold(ers)')
Intente buscar:
SELECT * FROM [ArticleTable] WHERE CONTAINS(*, 'digitally')
SELECT * FROM [ArticleTable] WHERE CONTAINS(*, 'improvements')
SELECT * FROM [ArticleTable] WHERE CONTAINS(*, 'folders')
y
SELECT * FROM [ArticleTable] WHERE CONTAINS(*, 'digital')
SELECT * FROM [ArticleTable] WHERE CONTAINS(*, 'improve')
SELECT * FROM [ArticleTable] WHERE CONTAINS(*, 'fold')
El primer grupo de condiciones coincidirá con la primera fila (y no con la segunda), mientras que el segundo grupo coincidirá con la segunda fila solamente.
Desafortunadamente no pude encontrar un enlace a MSDN (o algo así) donde tal comportamiento se establezca claramente. Pero he encontrado un official article que dice cómo convertir comillas para consultas de búsqueda de texto completo, que [implícitamente] está alineado con el algoritmo descrito anteriormente.
- 1. Búsqueda de texto completo de SQL Server
- 2. Ranking de búsqueda de texto completo (SQL Server)
- 3. Sql Server 2008 Express con búsqueda de texto completo
- 4. Búsqueda de texto completo en SQL Azure
- 5. Búsqueda de texto completo de SQL Server usando CONTAINS, FORMSOF, NEAR para varias palabras de búsqueda
- 6. búsqueda de texto completo instalado o no
- 7. Las preocupaciones sobre SQL Server 2008 Texto completo Búsqueda
- 8. Búsqueda de texto completo de SQL Server Búsqueda FREETEXTTABLE varias columnas
- 9. Google como consulta de búsqueda utilizando la búsqueda de texto completo en SQL Server
- 10. ¿Microsoft Access tiene búsqueda de texto completo?
- 11. búsqueda de texto completo usando el servidor sql 2008
- 12. Obtener frecuencias de palabras de SQL Server Búsqueda de texto completo
- 13. Caracteres de doble byte de búsqueda de SQL Server 2008
- 14. Catálogo de texto completo/búsqueda de índice% libro%
- 15. RavenDB búsqueda de texto completo
- 16. Uso de búsqueda de texto completo con archivos PDF en SQL Server 2005
- 17. Retraso en el uso de la búsqueda de texto completo en SQL Server
- 18. Búsqueda de texto completo de SQL Server PDF no funciona en FileStream Archivo PDF
- 19. Uso de la búsqueda de texto completo en SQL Server 2008 en varias tablas, columnas
- 20. MySQL búsqueda de texto completo varias palabras
- 21. Sunspot/Solr Búsqueda de texto completo: ¿cómo excluir ciertos campos de la búsqueda de texto completo?
- 22. Ranking de búsqueda de texto completo
- 23. Imprimación de búsqueda de texto completo?
- 24. mongodb estrategia de búsqueda de texto completo
- 25. Query SQl Server 2005 Búsqueda de texto completo noise/stop words
- 26. ¿Cómo uso la búsqueda de texto completo en varias tablas, SQL Server 2005
- 27. Cómo ignorar las etiquetas html en Sql Server 2008 Búsqueda de texto completo
- 28. ¿Qué tan difícil es incorporar la búsqueda de texto completo con SQL Server?
- 29. SQL Server 2012 Instalar o agregar la búsqueda de texto completo
- 30. SQL Server 2008 Búsqueda de texto completo en una tabla con una clave primaria compuesta