1

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

有关其结构的一些详细信息:我有一个存储 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')没有。我希望只有第一个匹配。

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

提前谢谢了

4

0 回答 0