У меня странная проблема с индексацией PDF-файлов в SQL Server 2005, и я надеюсь, что кто-то может помочь. В моей базе данных есть таблица MediaFile со следующими полями - MediaFileId int identity pk, FileContent image и FileExtension varchar (5). У меня есть веб-приложение, хранящее содержимое файла в этой таблице без проблем, и я могу без проблем использовать полнотекстовый поиск по документам, документам и т. Д. - единственное расширение файла, которое не работает, - это PDF. При выполнении полнотекстового поиска в этой таблице слов, которые, как мне известно, существуют в файлах PDF, сохраненных в таблице, эти файлы не возвращаются в результатах поиска.
Операционная система - Windows Server 2003 SP2, и я установил Adobe iFilter 6.0 . Следуя инструкциям на этой записи в блоге , я выполнил следующие команды:
exec sp_fulltext_service 'load_os_resources', 1;
exec sp_fulltext_service 'verify_signature', 0;
После этого я перезапустил SQL Server и проверил, что iFilter для расширений PDF установлен правильно, выполнив следующую команду:
select document_type, path from sys.fulltext_document_types where document_type = '.pdf'
Возвращает следующую информацию, которая выглядит правильно:
document_type: .pdf
путь: C: \ Program Files \ Adobe \ PDF IFilter 6.0 \ PDFFILT.dll
Затем я (заново) создал индекс для таблицы MediaFile, выбрав FileContent в качестве столбца для индекса и FileExtension в качестве его типа. Мастер создает индекс и успешно завершает работу. Чтобы проверить, я выполняю такой поиск:
SELECT MediaFileId, FileExtension FROM MediaFile WHERE CONTAINS(*, '"house"');
Возвращает файлы DOC, содержащие этот термин, но не PDF-файлы, хотя я знаю, что в таблице определенно есть PDF-файлы, содержащие слово house .
Между прочим, я работал один раз в течение нескольких минут, когда поиск, приведенный выше, возвращал правильные файлы PDF, но затем он просто перестал работать без видимой причины.
Есть идеи, что может помешать SQL Server 2005 индексировать PDF-файлы, даже если Adobe iFilter установлен и загружен?