Я пишу приложение на C # с использованием запросов полнотекстового поиска в SQL Server 2014. Пользователь должен иметь возможность выполнять поиск в базе данных, используя очень большой запрос, содержащий до 100 000 параметров.Например:
Запрос FTS:
SELECT * FROM Client WHERE contains(Name, '"John" OR "Sarah"')
LIKE запрос:
SELECT * FROM Client WHERE Name in ('John', 'Sarah')
За исключением двух имен, у нас есть 100 000 имен.Очевидно, это превышает максимальную длину запроса, поддерживаемую SQL.База данных содержит чуть более 1 миллиона записей.В некоторых случаях мне нужно будет найти имена клиентов, начинающиеся с указанной строки, поэтому FTS предпочтительнее, чем предложения «in» или «like».Есть ли какой-нибудь умный способ обойти это, кроме пакетирования запросов на множество кусков?Есть ли лучшая альтернатива использованию базы данных SQL?
Я также пытался реализовать поиск с использованием Lucene.NET, но создание индекса для более 1 миллиона записей занимает много часов, что недопустимо, так какданные будут синхронизироваться ежедневно.