Полнотекстовый индекс SQL, похоже, игнорирует индексы / индексы

У меня есть полнотекстовый индекс в двоичном поле, в котором хранится верхний и нижний индексы. При поиске в поле возвращаются одинаковые результаты, независимо от того, добавляете ли вы супер / вспомогательные номера сценариев в поиск или нет.

Некоторые подробности о том, как это структурировано: у меня есть таблица, где я храню 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²). Номера сценариев super/sub вводятся пользователем в виде текста путем вставки из карты символов и т. Д. (Вместо использования кодировки HTML). Если я сделаю запрос sys.dm_fts_index_keywords похоже, что в нем не хранится скрипт super/sub, поэтому неудивительно, что их нельзя найти. Однако в нем хранятся другие символы Юникода и другие символы супер / субскриптов, просто кажется, что это номера супер / субскриптов. В приведенном выше примере WHERE FREETEXT (HTMLTextBin, '4p²') а также WHERE FREETEXT (HTMLTextBin, '4p') оба возвращают запись, WHERE FREETEXT (HTMLTextBin, '4p2') не. Я ожидаю, что совпадет только первый.

Кто-нибудь знает настройки, которые мне не хватает? Или другой способ поиска, который включал бы этих персонажей?

Спасибо заранее

0 ответов

Другие вопросы по тегам