Я использую SQL Server 2008 R2 для разработчиков.
Я запустил следующее:
exec sp_fulltext_database 'enable'
Затем я создал таблицу со столбцом FileType и столбцом FileContent с типом данных VARBINARY (MAX). Затем я щелкнул правой кнопкой мыши по таблице и определил полнотекстовый каталог с использованием первичного ключа, столбца fileType и столбца FileContent. Затем я загрузил документ (используя этот вспомогательный метод в C #)
// <summary>
/// Read the file into a byte array for full text search
/// </summary>
/// <param name="inputStream"></param>
/// <returns></returns>
private byte[] GetFile(Stream inputStream)
{
BinaryReader br = new BinaryReader(inputStream);
byte[] file = br.ReadBytes((int)inputStream.Length);
br.Close();
inputStream.Close();
return file;
}
Файл загружен на сервер SQL, и я вижу двоичные данные в столбце FileContent.
Я сейчас пытаюсь запросить полнотекстовый каталог:
SELECT * FROM Entities.Documents
WHERE CONTAINS(FileContent, 'tablesorting')
SELECT * FROM Entities.Documents
WHERE CONTAINS(FileContent, 'Tablesorting')
SELECT * FROM Entities.Documents
WHERE FREETEXT(FileContent, 'tablesorting')
SELECT * FROM Entities.Documents
WHERE FREETEXT(FileContent, 'Tablesorting')
Ни один из них не возвращает никаких данных, даже несмотря на то, что загруженный мною документ (электронная таблица Excel версии 2010) содержит сортировку таблиц слов.
Любой совет? Спасибо
UPDATE
Похоже, что окно SQL Server не может использовать полнотекстовый поиск с docx, xlsx и т. Д.
Это кажется невероятным, если в 2007 году Office перешел на этот формат, и я использую SQL Server 2008 R2, а новые типы документов даже не зарегистрированы.
Microsoft в лучшем виде!
Спасибо за вклад.