Google デスクトップのバグ?

Google でうまく検索できないことがあると以前にも書きました

ここで最後に残った問題は、

  1. 単なるテキストなのにインデックスが作成されないファイルがある

ということでしたが、取り敢えず原因らしきものを見つけられた気がするので、ここに書いておきます。

ただその前に、検索結果で私のページが上位にくる事もあるようなので、これまで解った事を簡単に纏めておきます。

全文検索できない
どうやらこれは Google デスクトップの仕様

Google のヘルプセンターには、最初の約 10,000 語最初の約 75,000 文字等と有りますが、実際にはもっと少なくなることがあるようです。

そしてこの検索にヒットする/しないはプレヴューに表示されているかは関係がないようです。

PDF 検索できない PDF がある
  • 元々テキスト形式が含まれていても、Google デスクトップは全ての形式に対応しているわけでない
  • PDF→テキストに変換するプログラムに依存する
    その為次の方法で改善可能
    • 上記リンク先に従って PDFtoText を導入して、適切な文字データ及びその設定を行う
    • プラグインを導入する
      PDF に対応はしているのですが、上記の制限があるので、PDF もプラグインを使うようにします。具体的には、
      GoogleDesktopSearch★Xdoc を使ったほうが手っ取り早いようです。ただ内部で、xdoc2txt を内部から呼び出して使っているので、こちらを常に最新版にしておく必要が有ります。

    ただそれでもフィルタ・プログラムで問題なくテキスト化できるのに、検索できない事が有ります。このような場合、ファイルを開いてもダメですが、Adobe Reader でどのような文字列でも良いのでフォルダ丸ごと複数ファイルの一括検索してやると良いようです。少なくとも、後者のプラグインの場合はできるようになりました。前者は確認していません。

    使用ツールによる対応状況の違い
    PDFtoTextxdoc2txt
    スキャナに付属のツール××
    OpenOffice.org Write××
    dvipdfmx×

    肝心の最も基本となる Acrobat Distiller で試していませんm(__)m

    またどちらの場合も、縦書きの場合は上手く検索でき無いことが有ります。これは、PDF を作成するツールによって変わります。

    原因は縦書きの場合、xdoc2txt はオプション無しでは一文字ごとに改行してしまう事があり、PDFtoText は行や文字の取り込み順序がおかしくなる、といったことが起きることがあるためです。

    それ以外の各々の方法の利点・欠点は、次の通り

    PDFtoText
    • 前者は公式のプログラムを使っているので安心感は有ある
    xdoc2txt
    • 変換精度が良いよう

      PDFtoText では文字の順序が入れ替わったり、余分な空白が入っていることがあった。確認個数が少ないので、その逆もあるかもしれない。

    • 対応しているファイル・フォーマットが多い
    • 出力が Shift_JIS 固定のようなので、ASCII と日本語以外を含む PDF は上手くいかないと思う
    • 意図せずアクティブ・ウィンドウのフォーカスが奪われることが有る

      おそらく呼び出しているプログラムではなくプラグインの仕様だと思いますが、xdoc2txt の実行画面 が (最小化されているとはいえ) 現れるためです。

    • インデックス作成に関わる作業中は、スリープモードのならない?

      今一つ確認が取れていませんし、利点か欠点か不明ですが、上記のように実行画面が現れ何かの作業中とみなされるためか、このプラグインに関するインデックスが全て作成し終わるまで

      • スクリーンセーバ
      • 電源管理
      • スリープ/サスペンド・モードや休止状態

      が作動しない気が.....。

本題の

  1. 単なるテキストなのにインデックスが作成されないファイルがある

に付いてですが、Google デスクトップの設定「削除したアイテムを消去する 削除したファイルを検索結果に表示しないようにします」に関係するようです。私が確認できたのは次の方法です。(なお確認したのは、Windows XP+Google デスクトップ 5.8.0809.23506-ja-pb)

  1. 「削除したアイテムを消去する 削除したファイルを検索結果に表示しないようにします」を ON にする
  2. 適当なファイル を削除

    「ゴミ箱」に移動するだけでも良いです。 ここでは例として、google_desktop_test_sample.txt とします。 なおここで、普通では作成しないファイル名にしたほうがよいです。

    これで、google_desktop_test_sample.txt は表示されなくなります。これは設定通りなので問題ありません。

  3. google_desktop_test_sample.txt とフル・パスが同じファイルを作成。(ゴミ箱から元に戻すだけでも良い)

    別内容の場合はもちろん、内容が同じであってもファイルは存在するので、検索できることを期待しますが、検索できません。内容による検索はもちろん、ファイル名でもダメです。ファイルを開いて編集しても同じです。

  4. 設定を変えてもダメ

    これだけでも不都合なのですが、一旦検索できなくなると「削除したアイテムを消去する 削除したファイルを検索結果に表示しないようにします」を OFF にしても、同じパスのファイルは全く検索できません。

もしこれが私の操作ミスや勘違いでないとしたら、非常に解りにくい動作です。どうやら「削除したアイテムを消去する 削除したファイルを検索結果に表示しないようにします」を ON にすると、インデックスから削除するのではなく、「~のファイルは検索に表示しない」とフラグを立て、再び作られても、フラグを消さない気がします。インデックスの該当部分だけを削除するのは、パフォーマンスを考えると難しいかもしれませんが、仕様というにはあまりも....。ユーザの意見としてはバグだと思います。

さらに Subversion を使っている場合、最初の準備の後プロジェクトごとに「インポート」し、編集を再び始める前に「チェックアウト」しますが、このときフォルダを空、つまりファイルを削除しておくのが普通ですから (空にしなくても出来ますが、警告が出ます) 注意が必要です。

ここで問題となるのは、「対処方法あるのか?」ということですが、「削除したアイテムを消去する 削除したファイルを検索結果に表示しないようにします」を OFF で使うぐらいしかなさそうです。一旦検索できなくなると、「インデックスの再作成」では復活しませんでした。一度 Google デスクトップをアンインストール途中のオプションで、「インデックスとガジェットを保存し、後で Google デスクトップを再インストールしたときに使えるようにする」を OFF にして削除、つまりインデックスも含めて完全に削除し、まっさらの状態でインストールするしか方法はなさそうです。当然、まっさらの状態なので、インデックスが再作成され検索可能になるには、結構な時間がかかります。また作成終了後も次の点

  • 問題のファイルをインデックスに登録する前に、インデックスのファイル数が制限に達した。 Google デスクトップの初回インデックスでは、ドライブにつき 100,000 個までのファイルが登録されます。特定のドライブ内のファイルが 100,000 個を超える場合、一部のファイルは初回インデックスに登録されません。この場合は、インデックスの作成中にファイルを移動するか開くことで、インデックスにファイルを登録できます。

に注意が必要です。

最後に本題とは関係ないのですが、この過程で気が付いたことが 2 つ

  • プラグイン・インストールのチェックが厳しくなっている?

    テキスト・ファイル検索のために、Larry's Any Text File Indexer を使っていますが、この設定ファイルで拡張子が重複していると、インストールに失敗します。以前バック・アップを取っておいたので、再インストール時は同じだと思うのですが...。

  • ページのミス

    「ライムライン表示」「インデックスステータス」「概要」では、の一番下のエディット・ボックスからも検索が出来ますが、その横のボタンがどれも空ですね。他の箇所との比較から、 <input type=submit name="btnG" value="検索"> の要領で [検索], [デスクトップ検索] にあたると思うのですが。