SQL全文索引似乎忽略下标/上标数

时间:2018-04-03 15:19:45

标签: sql-server full-text-search varbinarymax freetext

我在二进制字段上有一个全文索引,用于存储上标和下标数字。搜索字段时,无论是否在搜索中添加超/子脚本编号,都会返回相同的结果。

有关如何构建的一些细节: 我有一个表格,我存储HTML但其中的文本需要搜索(所以当搜索“文本”时,<b>T</b>ext将匹配搜索以及Text,因此以及将HTML存储为文本的nvarchar(max)列,我还有一个varbinary(max),它存储转换为二进制文件的HTML,并带有全文索引(如http://blog.leifbattermann.de/2016/09/23/howto-implement-full-text-search-html-documents-microsoft-sql-server所述)。

HTML包含一些科学公式,例如使用上标和下标数字的电子结构(如:Ar3d⁰⁰4s²4p²)。用户通过从字符映射等粘贴(而不是使用HTML编码)将超/子脚本编号作为文本输入。 如果我查询sys.dm_fts_index_keywords,它看起来不会存储超级/子脚本,所以找不到它们并不奇怪。但是它确实存储了其他unicode字符和其他超/子脚本字符,它似乎只是超级/子脚本号。 在上面的示例中,WHERE FREETEXT (HTMLTextBin, '4p²')WHERE FREETEXT (HTMLTextBin, '4p')都返回记录,WHERE FREETEXT (HTMLTextBin, '4p2')没有。我希望只有第一个匹配。

有没有人知道我缺少的设置?或者另一种能够搜索包含这些字符的方式?

非常感谢提前

0 个答案:

没有答案