sql - 有没有办法让 Sql Server FullText 引擎停止将数字识别为数字?

标签 sql sql-server full-text-search

我有一个用户输入处理器,可以将 this search 转换为 "this"AND "search"。我的处理器运行良好,它根据我认为的分词器(包括标点符号)将用户输入分成几部分。

问题在于,在建立索引时,Sql Server 在处理数字时采用了一种特殊的方法。

如果索引以下字符串:

12,20.1231,213.23,45,345.234.324.556,234.534.345

它将找到以下索引键:

12
1231
20
213
23,45 (detected decimal separator)
234.534.345 (detected thousand separator)
345.234.324.556 (detected thousand separator)

现在,如果用户搜索 324 他/她将找不到任何东西,因为 324 包含在最后一个条目中,而不是开头,所以它不会被发现。我希望它停止将数字视为数字,而只是按照处理单词的方式对其进行索引。

有没有办法改变这种行为?无需实现太多代码?

最佳答案

不确定我是否正确理解了这个问题,但是如果您说 SQL 正在查找数字,那么它应该在哪里找到字符串然后将它们转换为字符串似乎是解决方案。

select cast(345234324556 as nvarchar)

关于sql - 有没有办法让 Sql Server FullText 引擎停止将数字识别为数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12974793/

相关文章:

mysql - SQL - 匹配两个表中@符号之前的电子邮件地址文本

sql - 如何使 ssrs 矩阵中的列不可见

用于计算子组中的排名和中位数的 SQL 排名查询

sql - 为什么执行存储过程比脚本中的 SQL 查询更快?

存储在 UTC 中的 SQL DateTimes 根据偏移量获取一天的开始

mysql - ThinkingSphinx 匹配精确短语

jar - 在Jar文件中搜索

php - ms sql row_number() 函数 - 不允许我在同一语句中使用

sql-server - 来自 SQL Server 和 Db2 的表之间的数据同步 - 如何删除行

结合短语和通配符的Mysql全文索引