2011-12-21 20 views
1

私はSQL Server 2008 R2の開発者用エディションを実行しています。全文検索クエリが機能しない

私は次のように走ってきました:

exec sp_fulltext_database 'enable' 

私は、ファイルタイプのカラムとVARBINARY(MAX)のデータ型を持つ含むFileContent列を持つテーブルを作成しました。次に、テーブルを右クリックして、主キー、fileType列、およびFileContent列を使用してフルテキストカタログを定義しました。私は、そのファイルがSQLサーバーにアップロードされ

// <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; 
    } 

(C#で、このヘルパーメソッドを使用して)、ドキュメントをアップロードし、私は含む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') 

これらのいずれもが、すべてのデータを返さない、私がアップロードされたドキュメント(エクセルスプレッドシートバージョン2010)ワードtablesortingが含まれていても。

アドバイスはありますか?おかげ

UPDATE

それはSQL Serverのボックスがdocxファイルで全文検索を使用することができないことが表示されます、XLSXなど

これは、Officeは、2007年にこの形式に切り替えて私が使用している検討信じられないようですSQL Server 2008 R2および新しいドキュメントタイプは登録されていません。

Microsoftは最高です!

寄稿いただきありがとうございます。

+0

どのようにファイルを書きますか? – Hammerstein

答えて

3

OSにインストールされているドキュメントフィルタを使用するようにSQL Serverに指示する必要があります。また、FTエンジンに適切なフィルタを使用させるために、バイナリとともにドキュメントの種類を格納する必要があります。 this MSDN articleをご覧ください。

関連する問題