Linked Custom Search

GoogleLinked Custom Search Engine についてちょっと調査。
リンク集に登録されたURLを対象に検索をかけられないかなあと考えたわけです。

前にも同じことを考えて調べたんですが、そのときは手動で登録するやり方しか見つかりませんでした。
「Google のことだからそろそろなんか機能が増えてないか」と再調査したら見つかりました。でも昔からあったっぽい。

しかし、日本語では資料がほとんどないっポイ。解説しているところは見つからなかったです。

概略としては、Annotation と呼ばれる役割を持つ、検索対象 URL を列挙した XMLファイルを準備しておき、それを Google Custom Search Engine の検索フォームで指定することで目指す機能が実現できます。このXMLファイルを動的に生成してやればOK。

フォームの準備も、XMLファイルの準備も難しいところはありません。

フォーム:http://www.guha.com/cref_cse.xmlの部分を、自分で用意したファイルに変えるだけ

<form id="cref" action="http://www.google.com/cse">
  <input type="hidden" name="cref" value="http://www.guha.com/cref_cse.xml" />
  <input type="text" name="q" size="40" />
  <input type="submit" name="sa" value="Search" />
</form>
<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=cref"></script>

XMLファイル:Title, Description, Label をそれぞれ、適当なものに変える。を、検索対象のURLに変える。

<?xml version="1.0" encoding="UTF-8" ?>
<GoogleCustomizations>
    <CustomSearchEngine>
        <Title>Solar Energy</Title>
        <Description>A Google Custom Search Engine that only includes solar energy sites</Description>
        <Context>
           <BackgroundLabels>
             <Label name="solar_example" mode="FILTER" />
          </BackgroundLabels>

        </Context>
        <LookAndFeel nonprofit="true">
           <Colors url="#FF6600" background="#FFFF33" border="#FF6600" title="#FF3300" text="#000000" visited="#663399" light="#FF0077"/>
        </LookAndFeel>
    </CustomSearchEngine>

   <Annotations>
    <Annotation about="http://www.solarenergy.org/*">
      <Label name="solar_example"/>
    </Annotation>

   <Annotation about="http://www.solarfacts.net/*">
       <Label name="solar_example"/>
   </Annotation>
  </Annotations>

</GoogleCustomizations>

適当にキャッシュが効いているのが厄介で、XMLファイルが悪くて上手くいかないのか、キャッシュが古くて上手くいかないのかが判別付きません。

とりあえず、Cubookmarken に付けてみました(配布版にはまだないですよ)。これで、ブックマークしたページ(以下のページ)を対象に、Google 検索が可能になります。