質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

Q&A

解決済

1回答

7331閲覧

SQLServerフルテキストインデックスの使用方法

M-Kajiwara

総合スコア24

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

0グッド

0クリップ

投稿2017/03/28 05:22

編集2017/03/29 06:19

###質問内容
SQLServerのフルテキストインデックスについて、
次のことをお教えください。

  1. PDFとOffice2010ファイルのフィルター追加方法
  2. 日本語の検索方法(正しい結果が表示されない)

###質問1の詳細
ファイル内の文字列検索を行うためフルテキストインデックスを利用しようと検証中です。
ファイル(拡張子が次のもの:.txt, .pdf, .xls, .xlsx, .doc, .docx, .ppt, .pptx)をバイナリ形式で
テーブルに保存し検索を行います。
現状は、.txt, .xls, .doc, .ppt の4ファイルのみ検索が行えています。

下記の参考サイト曰くPDFとOffice2010はフィルターを追加しなければならないようなので、
手順どおりフィルターを追加しました。しかし、

SQL

1EXEC sp_help_fulltext_system_components 'filter';

の結果一覧にフィルターが追加されず、CONTAINSで検索した結果にも表示されません。

参考サイト:フィルターの追加

ダウンロード:Office2010フィルター

ダウンロード:PDFフィルター


以下、実際の作業内容
0. PDFフィルターインストール
0. Office2010フィルターインストール
0. EXEC sp_fulltext_service @action='load_os_resources', @value=1;
0. EXEC sp_fulltext_service 'update_languages';
0. EXEC sp_fulltext_service 'restart_all_fdhosts';
0. 環境変数PATHに"C:\Program Files\Adobe\Adobe PDF iFilter 11 for 64-bit platforms\bin"を追加
0. 再起動
0. SELECT * FROM 本 WHERE CONTAINS(ファイル, '嵐'); --想定した結果が表示されない

###質問2の詳細
DBに4ファイル(.txt, .xls, .doc, .ppt )がバイナリで登録されており、
ファイルにはそれぞれ異なる文章が保存され、すべてのファイルに"嵐"という文字が含まれています。
次のSQLで検索した場合、想定では検索結果に4ファイルすべて表示されますが、結果は1件しか表示されません。

sql

1SELECT * FROMWHERE CONTAINS(ファイル, '嵐');

###補足情報
OS:Windows7 Professional SP1 64bit
DB:SQLServer2014

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

こんにちは。

すでに1から3は済んでいるようなので
4、5を行い、6のカタログの再構築(これで既存の登録ファイルも再構築される)を実行してみてください。
私の環境ではこれで検索できるようになりました。

■Filterインストール後は下記の操作をしたほうがいいみたいです。
1.sp_fulltext_service 'load_os_resources', 1
2.sp_fulltext_service 'Update_languages'
3.sp_fulltext_service 'Restart_all_fdhosts'
4.対象インスタンスの [SQL Full-text Filter Daemon Launcher] サービスを再起動
5.対象インスタンスの SQL Server のサービスを再起動
6.ALTER FULLTEXT CATALOG カタログ名 REBUILD

投稿2017/06/09 06:43

編集2017/06/09 06:47
cutedog

総合スコア177

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

M-Kajiwara

2017/06/16 07:12

ご回答ありがとうございます。 確認が遅くなり申し訳ないです。 教えていただいた手順を試してみたのですが、結果は変わらずでした。 cutedogさんは、正しく検索できたということなので、 こちらの環境が悪いのかもしれません。 環境を作り直して、再チャレンジしてみます。 進展があればご報告させていただきます。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問