Запрос полнотекстового поиска не работает - PullRequest
1 голос
/ 21 декабря 2011

Я использую 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 в лучшем виде!

Спасибо за вклад.

1 Ответ

3 голосов
/ 21 декабря 2011

Вам необходимо указать SQL Server использовать фильтры документов, установленные в ОС. Кроме того, вам нужно сохранить тип документа вместе с двоичным файлом, чтобы механизм FT использовал правильный фильтр. взгляните на эту статью MSDN .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...