#sql #sql-server #full-text-search #full-text-indexing
#sql #sql-сервер #полнотекстовый поиск #полнотекстовое индексирование
Вопрос:
У меня есть таблица (имя: ошибки) с большим количеством строк. некоторые строки этой таблицы показаны в следующем:
202 16 Invalid type '%s' for WAITFOR. Supported data types are CHAR/VARCHAR, NCHAR/NVARCHAR, and DATETIME. WAITFOR DELAY supports the INT and SMALLINT data types.
203 16 The name '%.*ls' is not a valid identifier.
204 20 Normalization error in node %ls.
205 16 All queries combined using a UNION, INTERSECT or EXCEPT operator must have an equal number of expressions in their target lists.
206 16 Operand type clash: %ls is incompatible with %ls
207 16 Invalid column name '%.*ls'.
вместо строк типа ‘%.*ls’ можно использовать другие слова. например, у меня есть строка, подобная этой:
Invalid column name 'test'.
Я хочу использовать полнотекстовый поиск в Microsoft SQL Server 2012, чтобы найти наиболее похожую строку в таблице ошибок с (Недопустимое имя столбца ‘test’.) я использовал запрос ниже, но этот запрос не возвращает никаких выходных данных
SELECT *
FROM errors AS A
INNER JOIN
CONTAINSTABLE(errors , text, 'ISABOUT ("Invalid column name ''text''")',
LANGUAGE N'English',10) AS K
ON A.text = K.[KEY]
есть идеи?
Комментарии:
1. Попробуйте что-то вроде этого. Выберите * Из ошибок a, где a.текст типа «Недопустимое имя столбца text%», Внутреннее соединение и containstable выглядят для меня излишними.
2. это не работает. «Недопустимое имя столбца ‘test'» не существует в таблице. ‘test’ вместо ‘%.*ls’ в строке таблицы (207 16 Недопустимое имя столбца ‘%.*ls’.). Мне нужно найти наиболее похожий srtring!
3. Я не уверен, понимаю ли я. Вы ищете ошибку в errors, которая выглядит как недопустимое имя столбца какой-то другой текст, заканчивающийся на ls. Это правильно?
4. Это был просто пример. У меня есть таблица ошибок. сообщения об ошибках содержат строки типа ‘%.*ls’, которые можно заменить любой строкой (например: столкновение типов операндов: int несовместимо со строкой) Мне нужен общедоступный способ найти наиболее похожую строку в таблице с моей строкой (моя строка: столкновение типов операндов: int несовместимо со строкой или недопустимым именем столбца «текст» или …)