web-dev-qa-db-ja.com

.SQL拡張子を持つテキストファイルのコンテンツにインデックスを付けないWindowsSearch

拡張子が.sqlのテキストファイルのコンテンツをWindowsSearchでインデックスに登録するのに問題があります。私が間違っていることはありますか?

バックグラウンド:

私はNavicatというプログラムを使用しており、MySQLデータベースの操作に役立ちます。 Navicatを使用してクエリを編集および保存すると、ProgramFilesのNavicatのディレクトリにある.sqlファイルにクエリが保存されます。

Windows Searchはデフォルトでプログラムファイル内のファイルにインデックスを付けないので、次の図に示すように、インデックス付きの場所のリストに追加しました。

enter image description here

また、詳細セクションに移動し、.sqlファイル拡張子を追加して、Index Properties and File Contentsオプションを選択しました。これにより、フィルターの説明がPlain Text Filterに設定されます。

enter image description here

ただし、.sqlなどのsaw_order.Wo type:sqlファイル内で見つかると予想されるテキストを検索しても、ファイルは返されません。検索isファイルのnameの一部を検索している場合は成功しますが、その内容を.sqlファイル。

.sqlファイルは、メモ帳で簡単に開いて編集できるプレーンテキストファイルです。 Navicatは、インテリセンスと組織機能を追加するだけですが、それ以外はプレーンテキストです。

Windows Searchがこれらのファイルの内容を表示できないのはなぜですか?

これらのファイルを認識するために、Windowsサーチに特別なプラグインを追加する必要がありますか?

注:私はWindows Search4.0とWindowsを使用していますXP SP3。

10
Ben McCormack

プレーンテキストで設定されている場合でも、WindowsSearchがファイルの形式を読み取ることに問題があるようです。これは 既知の問題 であり、さらに取り上げられています ここではスーパーユーザー

今のところ、ファイルの内容を検索できるプログラムを使用することをお勧めします。インデックスを作成するほど速くはないかもしれませんが、うまくいけば、それはあなたのために仕事を成し遂げることができます。

私がお勧めする4つの優れたツール:

エージェントランサック(フリーウェア):

alt text

NirSoft SearchMyFiles(フリーウェアおよびポータブル):

alt text

Windows Grep

alt text

ポータブルファイルシーカー(フリーウェア):

alt text

7
John T

レジストリのこの場所に次のキーがあることを確認してください。

Computer\HKEY_CLASSES_ROOT\.sql

[HKEY_CLASSES_ROOT\.sql]
"Content Type"="text/plain"
"PerceivedType"="text"

[HKEY_CLASSES_ROOT\.sql\PersistentHandler]
@="{5E941D80-BF96-11CD-B579-08002B30BFEB}"

次に、インデックスを再作成します。

4
John G Tesmer

インデックス作成自体に問題がある場合は、検索にインデックス付けされていないファイルの内容を確認するように指示してみます。

エクスプローラウィンドウに移動し、を押します Alt 次に、[ツール]> [フォルダオプション]に移動し、[検索]タブをクリックして、丸で囲んだオプションにチェックマークを付けます。

enter image description here

2
William Hilsum

私は2つのことしか考えられません:

  1. ファイル自体はまだインデックス付けされていません(したがって、コンテンツ検索ではなくファイル名検索ビットに表示されます)

  2. また、テストをお勧めします...いくつかのSQLファイルをProgram Filesフォルダーの外に置き、そのフォルダーをインデックス付きの場所のリストに含めてみてください。たぶん、ProgramFilesのフォルダに権限の問題がありますか?

1
Shoeless

多くの検索エンジンは、ファイルを解釈する方法を理解するために、しばしば「コネクタ」と呼ばれるある種のモジュールを必要とします。

スクリーンショットでは、SQLファイルが「プレーンテキスト」としてリストされていることに注意してください。ファイルがプレーンテキストである場合でも、Windows Searchは.sqlファイルがテキスト以外のものであると想定し、単にそれを無視する場合があります。

仮説をテストするには、ファイルのコピーを作成し、拡張子を「.txt」に変更してから、インデックスの再作成を強制します。

おそらくもっと強力なテキストエディタ(私のお気に入りはgVim -- http://www.vim.org/download.php#pc )を使用して、最初の「マジックナンバー」かどうかを確認するためのその他のチェック事項ファイルのは通常のテキストファイルとは異なります。

1
pcapademic

windows-desktop-search-fails-to-search-inside-sql-files への回答で運が良かったかもしれません。

1
RJFalconer

記事 Windows XP Search Bug は次のように述べています:

Windows XPは、検索のパフォーマンスを向上させ、無関係な結果を回避するためにすべてのファイルを検索するわけではありません。この動作は、検索時にインデックスサービスを使用するかどうかに関係なく発生します。したがって、Windows XPには、「テキストを含む」ファイルの検索を実行したとき、または「ファイル内の単語またはフレーズ」オプションを使用したときに、多数のファイルタイプが見つからないという既知の問題があります。

これは、すべてではありませんが、多くのファイルタイプで修正できます。原因は、このタイプのファイルのレジストリにPersistentHandler値がないことです。

方法#1

これをダウンロード VBスクリプト (作成者 Doug Knox )。ダウンロードしたファイルをハードディスクに保存します。保存したファイルを見つけてダブルクリックします。変更したいファイル拡張子を入力します。 PersistentHandlerサブキーが存在する場合、変更は行われません。問題のファイルタイプに存在しない場合は、それに応じてレジストリが更新されます。変更するファイルの種類が終了したら、再起動します。

方法#2

MS KB 30917 このバグに対する別の修正があります。ファイルの種類に関係なくすべてのファイルを検索するようにWindows XPを構成するには、Windows XP(現在はSP2)の最新のサービスパックを入手してから、拡張子が不明なファイルタイプにインデックスを付けるオプション。

この方法を使用する場合、Windows XPは、指定したテキストのすべてのファイルタイプを検索します。

これは、検索機能のパフォーマンスに影響を与える可能性があります。これを行うには、上記の指示を参照してください 記事

1
harrymc