サイト内検索

このサイトのサイト内検索をGoogleカスタム検索に変更、また姉妹サイト上町ウェブ製作所にも同様にサイト内検索を設置しました。

Drupalにはコアモジュールにサイト内検索が含まれていて、Cron(定期的バッチ処理)を走らせることでインデックスが作成されるのですが、サーバーとの接続状態が良くないとタイムアウトしてしまうことがあり、これに代えてGoogleのカスタム検索を組み込むことにしました。

Gmailと同じGoogleのアカウントで設置、Analyticsのように専用ページで、対象サイトやAnalyticsとの関連付け、表示デザインなどの詳細を設定、管理できます。Adwordsの広告が入りますが、有料プランだと広告が消えます。

このデザイン設定がどうやら最近変更があったようで、設定方法を紹介されているサイトの記載内容と現状が違っていて、いささか戸惑いましたが、検索ボックスと検索結果を同じテンプレートで別ページに出力する場合、デザインの「2ページ」を選択し、コードの取得画面で、検索結果の表示ページのURLとパラメータ名を指定します。このパラメータ名がデフォルトの「q」では出力できず、「s」にしたらOKでした。

ここに至るまで若干手間取ったため、Yahooのカスタムサーチも試してみました。Yahooの方が設定は容易ですが、出力結果に広告が表示される場合、Googleでは広告が検索結果の上に表示されるのですが、Yahooでは広告無しの場合1カラム、広告ありの場合2カラムになってしまいます。このためテンプレート内に収めると、どうしてもiframeのスクロールバーが出てしまうことになります。

DrupalとGoogleカスタム検索で検索結果を比較してみると、Drupalはノード(個別コンテンツ)だけですが、GoogleではViewsが出力した一覽ページも対象になり、コンテンツが多くあるように見えます。

またどのようにGoogleにインデックスされているかを簡単にチェックできるというメリットもあります。検索対象サイトを複数設定できるので、このサイトと上町ウェブ製作所サイトの両方を検索対象にすることもDB自体が別なので、Drupalだけでは実現できない機能です。

検索はやっぱりGoogleと実感させられました。