我在存储上标和下标数字的二进制字段上有一个全文索引。搜索字段时,无论您是否在搜索中添加上/下脚本编号,都会返回相同的结果。
有关其结构的一些详细信息:我有一个存储 HTML 的表,但其中的文本需要是可搜索的(因此在搜索“文本”时,<b>T</b>ext
将匹配搜索以及Text
,因此以及 nvarchar( max) 列,将 HTML 存储为文本,我还有一个 varbinary(max) 存储转换为二进制的 HTML 并带有全文索引(如此处所述http://blog.leifbattermann.de/2016/09/23 /howto-implement-full-text-search-html-documents-microsoft-sql-server)。
HTML 包含一些科学公式,例如使用上标和下标数字的电子结构(例如:Ar 3d¹⁰ 4s² 4p²)。用户通过从字符映射等粘贴(而不是使用 HTML 编码)以文本形式输入超级/子脚本编号。如果我查询sys.dm_fts_index_keywords
它看起来这不存储超级/子脚本,所以找不到它们也就不足为奇了。但是它确实存储了其他 unicode 字符和其他超级/子脚本字符,它似乎只是超级/子脚本编号。在上面的例子中,WHERE FREETEXT (HTMLTextBin, '4p²')
两者WHERE FREETEXT (HTMLTextBin, '4p')
都返回记录,WHERE FREETEXT (HTMLTextBin, '4p2')
没有。我希望只有第一个匹配。
有谁知道我缺少的设置?或者另一种能够搜索到这些字符的方式?
提前谢谢了