Имеется алгоритм сопоставления строк, который работает с определенными строками (например, «123456789») и шаблонами строк (например, «1 ******* 9»).Строковые шаблоны не являются какими-либо шаблонами регулярных выражений или SQL LIKE - они предоставляют только заполнитель "*", что означает "одну цифру или букву".
Таким образом, алгоритм будет обрабатывать эти значения как "равные":
12ABCDE89
12A***E89
**A****8*
*********
Данные хранятся в реляционной базе данных (MS SQL Server), и приложение ядра .net обращается к ним через EntityFramework Core.Требуемый сценарий состоит в том, чтобы получить 500 входных строк (определенных или шаблонных) и найти совпадающие строки в базе данных (в таблице, содержащей 1 миллион строк).
Сначала я реализовал ее, используя сопоставление с шаблоном LIKE (сначала я преобразовал входные строки в шаблон LIKE, а затем создал предикат для предложения WHERE), но тесты показали, что он имеет недопустимую производительность.
Могу ли я реализовать эту задачу с помощью функции FULL-TEXT SEARCH в MSSQL?Как будет выглядеть предикат в этом случае?Есть еще идеи по реализации?