Yahoo!に莫大な利益をもたらしている


漫才コンビのナイツが昨晩のレッドカーペットで
Yahoo!からお花と記念品を頂きました」
「ついに、公認頂きました!」
と発表。

よかったよね。


昨日はリアルタイムで見てたんだけど、
さすがにワンセグでフルスクリーンはきつい。
Slingboxで地上アナログ見た方がマシだなー。

Vistaの検索フォルダの .search-ms

動画をタイトルごとにフォルダを掘って保存してるんだけど、再生したいときにいちいちフォルダの中に入ったりするのがめんどくさい。Vistaエクスプローラは検索結果をフォルダのような感覚でアクセスできるから、最近更新されたmp4ファイルのみを表示する設定を作れば良いんじゃないかと思ったけど、わりとうまくいかない。
エクスプローラでCtrl+Fで検索のウィンドウを出して、検索ペインで設定をしていくといきなりつまづく。「10日以内に更新されたファイル」のような設定ができない。日付で「YYYYMMDD日以降」とか「以前」みたいなのは出来るけど、現在時刻を基準に「○日以内」みたいな設定ができない。ウンコすぎるだろ...。
検索条件はファイルとして保存できる。拡張子は .search-ms で、中身はUTF-8XMLになってる。
Vistaにデフォルトで登録されている検索フォルダには「最近使ったファイル」や「最近の電子メール」というファイルがある。GUIでは設定できなくても.search-msファイルを手書きすれば、「○日以内」の設定ができるに違いないと思って確認。

<condition type="leafCondition" valuetype="System.StructuredQueryType.DateTime"
 property="System.DateModified" operator="imp" value="R00UUUUUUUUZZXD-30NU"
 propertyType="wstr" />

どうやらこれがそうらしい。valueの"30NU"の部分を"10NU"にすれば「10日以内」になる。その前の"R00UUUUUUUUZZXD"と"30NU"の"NU"の部分は意味がわからなかった。
とりあえず、これで日付による範囲指定はできた。


あれこれあって、だいたい目標としていたものになった。
(更新日が10日以内 AND (拡張子=".mp4" OR 拡張子=".wmv"))っていう条件で、検索対象のパスは "\\gae-a\video\tokyo" みたいな。

<query>
  <conditions>
    <condition type="andCondition">
      <condition type="leafCondition" valuetype="System.StructuredQueryType.DateTime"
       property="System.DateModified" operator="imp" value="R00UUUUUUUUZZXD-10NU"
        propertyType="wstr" />
      
      <condition type="orCondition">
        <condition type="leafCondition" property="System.ItemType"
         propertyType="string" operator="eq" value=".mp4">
          <attributes/>
        </condition>
        <condition type="leafCondition" property="System.ItemType"
         propertyType="string" operator="eq" value=".wmv">
          <attributes/>
        </condition>
      </condition>
    </condition>
  </conditions>
  <kindList>
    <kind name="item"/>
  </kindList>
  <providers>
    <provider clsid="{88CF4A86-5D7A-48EB-B53E-EA388A390096}"/>
  </providers>
  <scope>
    <include path="\\gae-a\video\tokyo"/>
  </scope>
</query>

ファイルが15,000くらいあるし、検索対象がネットワークなのでインデックスが利用できず、検索結果が揃うまでに結構時間がかかるのが難点。

今回の主な変更点は、リモートPCが作成した共有ファイルのインデックスをネットワーク越しに利用可能になったこと。これにより、リモートPC上のファイルも素早く検索できるようになった。

窓の杜 - 【NEWS】MS、デスクトップ検索ソフト「Windows Search」v4.0を正式公開

どうやって使うのかわからんが、とりあえず検索先のPCにもインストールしてみようかな。

追記

Windows SearchでUNCのパスを追加(d:id:gae:20081219:1229691682)することができたので、ネットワーク上のPCにWindows Searchをインストールする必要はなさそう。
で、インデックスを作成したのなら scope は外した方が汎用的で便利そう。scopeの代わりにsubQueryで以下の用に指定すればインデックスされたファイルのみが検索されるみたい?

<subQueries>
  <subQuery knownSearch="{4f800859-0bd6-4e63-bbdc-38d3b616ca48}"/>
</subQueries>

ネットワーク上の共有ファイルのインデックスを作成

Windows XPWindows Search 4.0をインストールしてみたら、オプションに「UNCの場所を追加」があった。

この機能を使えば、ネットワークのファイルも速く検索できそうなんだけど、Vistaで同じ画面を出してみると、設定項目が見あたらない...。

ググってみると、以下のパッチをインストールすれば、XP同様の機能が追加されるみたい。

で、これをインストールしたら、XPと同じ画面が出てくるようになった。ただし英語。日本語版は無かった。

とにかく、これでインデックスの作成対象のパスに、UNCのパスを追加できるようになった。NAS等にドキュメントを保存していて、そこから高速に検索したいときに使えるかな。しかし、Vistaではどうしてこの機能がオプションなんだろう...。

Vistaのスタートメニューからの検索が遅い件の解決

Vistaのスタートメニューに検索窓が付いているけど、あそこからアプリケーションやドキュメントを検索すると、結果が出るまでに4〜5秒もかかる。今まで「そんなもんだ」と思ってたんだけど、Windows+F キーで表示される検索ウィンドウから検索すると、結果がすごく速く表示されることに気づいた。
スタートメニューの設定を見直してみると、改善方法がわかった。

この画面の「検索ファイル」の設定は「このユーザのファイルを検索する」がデフォルトなんだけど、これを「インデックス全体を検索する」に設定すれば良い。
これで、検索結果が勢いよく表示されるようになった。当然、検索したいものがインデックスされていることが前提なので、インデックスオプションは適切に設定されてないとだめだけど。


一つ前に書いた、UNCのパスに対してインデックスを作成する方法と合わせると、ネットワークに保存してるファイルもスタートメニューから簡単に高速に検索して開けるようになって激しく便利になったような気がする。