sql-server – SQL Server全文检索逃脱字符?
发布时间:2020-12-12 16:46:02 所属栏目:MsSql教程 来源:网络整理
导读:我正在做一个MS SQL Server全文搜索查询.我需要转义特殊字符,所以我可以搜索包含特殊字符的特定术语.是否有内置函数来转义全文搜索字符串?如果没有,你会怎么做? 解决方法 坏消息:没办法好消息:你不需要它(因为它不会帮助). 我在我的一个项目中遇到了类似
我正在做一个MS SQL Server全文搜索查询.我需要转义特殊字符,所以我可以搜索包含特殊字符的特定术语.是否有内置函数来转义全文搜索字符串?如果没有,你会怎么做?
解决方法坏消息:没办法好消息:你不需要它(因为它不会帮助).我在我的一个项目中遇到了类似的问题.我的理解是,在构建全文索引时,SQL Server将所有特殊字符视为分词符,因此: >具有这样一个字符的单词在全文索引中表示为两个(或多个)单词. 考虑我们有一个相应的全文索引(被跳过)的下表: CREATE TABLE [dbo].[ActicleTable] ( [Id] int identity(1,1) not null primary key,[ActicleBody] varchar(max) not null ); 稍后再考虑,我们在表中添加行: INSERT INTO [ActicleTable] values ('digitally improvements folders') INSERT INTO [ActicleTable] values ('digital"ly improve{ments} fold(ers)') 尝试搜索: SELECT * FROM [ArticleTable] WHERE CONTAINS(*,'digitally') SELECT * FROM [ArticleTable] WHERE CONTAINS(*,'improvements') SELECT * FROM [ArticleTable] WHERE CONTAINS(*,'folders') 和 SELECT * FROM [ArticleTable] WHERE CONTAINS(*,'digital') SELECT * FROM [ArticleTable] WHERE CONTAINS(*,'improve') SELECT * FROM [ArticleTable] WHERE CONTAINS(*,'fold') 第一组条件将匹配第一行(而不是第二组),而第二组只匹配第二行. 不幸的是,我找不到指向MSDN(或某些东西)的链接,这样的行为是明确的.但是我发现了一个official article,它告诉如何将全文搜索查询的引号转换成与上述算法对齐的方式. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- SQL 外链接操作小结 inner join left join r
- 将MS SQL脚本转换为Mysql和Oracle
- SQLServer2005设置级联删除、级联更新
- sql – ADD时间23:59:59.999结束日期之间
- sqlserver2005使用row_number() over分页的实现方
- Sqlserver数据库通知应用程序
- sql-server – 实现在SQL Server中允许多个NULL值
- sql-server – 是否可以在通过Web服务执行SSRS报
- sql-server – 即使第一个参数不是NULL,SQL Serv
- sql-server – 如何在不安装SQL Server 2005客户
热点阅读