У меня есть база данных SQL Server 2008 с таблицей, для которой включен FileStream.Я буду ссылаться на эту таблицу как Tbl_FileStream для оставшейся части этого вопроса.
Tbl_FileStream содержит сотни тысяч файлов, от PDF до JPG и TXT.
Кроме того, Tbl_FileStream имеет полнотекстовый индекс, созданный для FileStream.Полнотекстовый индекс работает великолепно, и у меня есть хранимая процедура, которая выполняет полнотекстовый поиск по нему (используя CONTAINSTABLE и RANK), и он также отлично работает.
Однако я нахожусь в расстроенном положении сОтносительно того, что полнотекстовый поиск может вернуть мне, когда он получает удар при поиске в FileStream.Например, мы должны искать фразу «et dolore», тогда мой поиск даст результаты, которые показывают, что 59 документов соответствуют поисковому запросу.Конечно, я могу получить названия документов, которые были найдены как совпадающие, потому что я храню заголовки документов в Tbl_FileStream, , но мне действительно нужно, чтобы текст, окружающий поисковый термин, находился внутри фактического файла .
Например, предположим, что у меня есть текстовый документ со следующим латинским - Lorem Ipsum Dolor Sit Amet, Contetur Sadipscing Elitr, Sed Diam Nonumy Eirmod Tempor Invidunt Ut Labore et Dolore Magna Aliquyam Erat, Sed Diam Volptua.В vero eos et accusam и justo duo dolores и ea rebum.Stet clita kasd gubergren, нет моря takimata sanctus есть Lorem ipsum dolor sit amet.
Используя возможность полнотекстового поиска в SQL Server, если бы мне пришлось искать слова «et dolore», то мне действительно нужно было вернуть произвольное количество слов (10 или около того), идущих по поисковому запросубыл найден в документе, так что я на самом деле получал такую фразу, как "... sed diam nonumy eirmod tempor invidunt ut labore et dolore ...".
И дляте, кто задаются вопросом, почему в мире кто-то хотел бы сделать это, причина в том, что потребитель хочет быстро взглянуть на контекст, в котором поисковый термин был найден в каждом обращении.Другими словами, они хотят быстро просмотреть результаты поиска и попытаться увидеть, какой из попаданий документа, вероятно, содержит то, что они ищут.
Возможно ли это сделать в SQL Server2008?
Если нет, то есть ли какие-нибудь бэкэнды, поддерживающие это?
Заранее благодарен за все предложения и помощь, которые я получаю при этом трудномтема.