我们有一个包含电子邮件和文件文本的主体(NVARCHAR(MAX))列的表。列是全文索引的。
有些文档包含参考编号,如00123。然而,全文引擎似乎去掉了前导零,所以当我们使用CONTAINS(Body, '00123')搜索时,它也会返回包含123的假阳性。
有办法解决这个问题吗?理想情况下,可以在查询中找到解决这一问题的方法,但我们也会考虑其他选项,如替换分词器等。
我们正在使用Server 2008 R2及更高版本。
发布于 2014-03-28 04:49:42
根据SS 2012的行为更改为全文搜索页面,在给定术语022的情况下,早期版本的断线词产生了022和nn022,而新版本产生了022和nn22。因此,Server 2008 R2在搜索带前导零的数字时将产生所需的结果,但Server 2012不会。(这假设要被全文索引的列使用英语作为其分词语言)。
在Server 2012上有几种实现预期结果的方法。您可以恢复到以前的分词器,或者,如果您需要的术语数量有限,可以考虑使用自定义字典。
自定义字典用为Server 2008全文索引中的“as-is”索引特殊术语创建自定义词典和用自定义字典自定义分词器的行为描述。注意:第一篇文章说英语的语言十六进制代码是1033,而1033是英语的LCID。英语的六进制语言代码是0009。因此,对于英语词典,文件名应该是Custom0009.lex。
https://stackoverflow.com/questions/22701562
复制相似问题