none
SQL Server 2012 で Office2010ファイル(.docx/.xlsx/.pptx)のフルテキスト検索が実行出来ない RRS feed

  • 質問

  • お世話になっております。

    SQL Server 2012 のDBに格納したOffice2010ファイル(.docx/.xlsx/.pptx)
    に対して『contains』を使用してフルテキスト検索を行いたいのですが、
    ネット等を参考に下記の手順で設定を行ったにも関わらず、SELECT文でヒットしてくれません。

    ■サーバー環境
     OS:Windows Server 2008 R2 (64bit)
     データベース:SQL Server 2012 Standard
     データベース名:TEST_DB
     テーブル名:ARCHIVE_DATA

    以前、下記の別サーバー環境で同じ手順を実行したときには問題なく検索出来るようになりました。
    サーバー環境、手順などどこに問題があるのか全く見当が付かない状態です。
     OS:Windows Server 2008(32bit)
     データベース:SQL Server 2008 Standard
     フィルタパック:FilterPack32bit.exe

    ■手順
    1:Office2010ファイルのフィルタ追加
     ①「Microsoft Office 2010年フィルター パック」(FilterPack64bit.exe)をダウンロード
     ②上記ファイルを実行してフィルターをインストール
     ③SQL Server の Management Studio を起動
     ④下記SQL文でOffice2010ファイル(.docx/.xlsx/.pptx)のフィルタが追加されていることを確認
      use TEST_DB
      select * from sys.fulltext_document_types
     ⑤下記SQL文で OS のフィルタとワード ブレーカを読み込むように設定
      use TEST_DB
      exec sp_fulltext_service 'load_os_resources', 1
     ⑥SQL Server を再起動する

    2:検索対象のテーブルにフルテキストインデックスの定義を行う
     ①テーブル(TEST_DB.ARCHIVE_DATA)の右クリックメニュー「フルテキストインデックスの定義」をクリック
     ②定義ダイアログで以下のように指定してフルテキストインデックスを作成
      使用可能な列:FILE_IMAGE (型:image、バイナリ形式でファイルデータを格納)
      ワードブレーカーの言語:Japanese
      型列:FILE_EXTENSION (型:varchar(10)、"docx"や"xlsx"などの拡張子を格納)
      統計のセマンティクス:非選択

    3.文書内に同じ文言(test123)を含む下記2つのファイルを用意し、テーブルにレコードを2件追加
      ファイルA:fileA.doc
      ファイルB:fileB.docx

    4.下記SQL文でフルテキスト検索を実行
      use TEST_DB
      SELECT * FROM ARCHIVE_DATA WHERE contains(FILE_IMAGE, 'test123')

     ⇒ この結果、該当1件(ファイルA)となり、ファイルBがヒットしてくれません。

    ご教示のほど宜しくお願い致します。

    2012年12月5日 8:37

回答

  • Wordについては知りませんが、Excelについては、http://support.microsoft.com/kb/2703779/JAがあります。もし、sys.dm_fts_index_keywords_by_documentやsys.dm_fts_index_keywordsあたりを確認してもtest123がないようであれば、試しにNeutralのwordbreakerを日本語wordbreakerに変えてインデックスを再構築してみてはどうでしょうか?

    • 回答の候補に設定 佐伯玲 2012年12月26日 2:26
    • 回答としてマーク 佐伯玲 2012年12月27日 6:32
    2012年12月21日 6:40

すべての返信

  • Wordについては知りませんが、Excelについては、http://support.microsoft.com/kb/2703779/JAがあります。もし、sys.dm_fts_index_keywords_by_documentやsys.dm_fts_index_keywordsあたりを確認してもtest123がないようであれば、試しにNeutralのwordbreakerを日本語wordbreakerに変えてインデックスを再構築してみてはどうでしょうか?

    • 回答の候補に設定 佐伯玲 2012年12月26日 2:26
    • 回答としてマーク 佐伯玲 2012年12月27日 6:32
    2012年12月21日 6:40
  • こんにちは、taka_yama さん
    フォーラムオペレータの佐伯 玲 です。

    その後MKIIIさんより寄せられた情報はご確認いただけたでしょうか?
    参考になる情報だと思われたので勝手ながら私のほうで「回答としてマーク」とさせて頂きました。

    ご確認いただいた結果を一度ご返信いただけましたらと思います。

    宜しくお願いいたします。
    __________________________
    日本マイクロソフト株式会社 フォーラム オペレータ 佐伯 玲

    2012年12月27日 6:32