日記
全文検索を利用したサイト間連携 (13:51)Edit

2004/4/15

Estraierにメタ検索インターフェースが標準装備されたんで、試しに自サイト内の複数形式のコンテンツに、それぞれEstraierでindexを作り、さらにそれぞれ用の検索CGIを用意し、さらにそれらをまとめて検索するメタ検索インターフェースを用意してみましたよ。

といった感じで簡単に串刺し検索がかかるようになったことだし、あとは元々の目的だった、InterWikiのように検索機能を使って、複数サイトにまたがったコンテンツを連携させる取り組みにかかろう。

というわけで、Estraierのestsearch.cgi(互換)の検索インターフェースを持つサイト(特にWiki系)募集中。PukiWikiにEstraier検索を組み込む方法は、そのうちドキュメントにでもまとめておこうか。

アプローチとしては3種類くらいあって、

  • ともかくwikiディレクトリでestautoregしてindexを生成し、estsearch.cgiへのフィルターを書いて、妥当な(URLやタイトルを変換した)xhtmlを吐き出すようにする(←うちで採用している方法)
  • ともかくwikiディレクトリでestautoregしてindexを生成し、estxviewでコマンドライン検索(結果はXML)を取得し、その結果を使ってestsearch.cgi互換のxhtmlを生成する(←単にEstraier検索を組み込むだけならもっとも妥当な方法だけど、estsearch.cgi互換にするのが面倒くさそう)
  • pukiwikiデータファイル用のフィルターを書いて、indexを生成する(←これが一番妥当な方法かな? でもフィルター周りの仕様は全然読んでいないんで、本当に妥当なのかどうか知らない)

って感じ。


2004/2/25

メタ検索の項にある、

>>メタ検索を多階層で行うことによって、さらに大規模な検索システムを構築することも考えられる。例えば、始めに10サイトに対してクエリを発行し、その10サイトが各々10サイトにクエリを発行すれば、100サイトを対象にした検索が実現できるだろう。インターネット環境で不特定多数のサイトがこのようなクエリの交換を行うと面白いに違いない。

ってのはとても面白そうだ。BulkfeedsSimilarSearchみたいなものをP2Pで実現するために使えるかもしれない。

まず各サイトがEstraierでの全文検索をサポートしつつ、検索連携用I/Fとしてestsearch.cgiへのURLを公開しておく。さらにInterWikiみたいな感じで、自サイトと連携させたいサイトの検索連携用I/Fも登録しておく。

あるサイトの検索連携I/Fに対してクエリー(検索文字列)を投げると、そのサイトはさらに連携するサイトへとクエリーを投げる。何階層までクエリーをたどるかはリソース次第。そうやって、n階層たどったクエリーの結果は集約されつつ、大元のサイトまで返ってきてそこで表示される。

連携先をInterWikiみたいにサイト運営者が登録するのではなく、そのサイトにTrackBackを送ったサイトが自動的に登録されるような仕組みにしておくと、「そのサイトと似たような話題を扱ったことがあるサイト群に対して文字列全文検索を行い、類似する記事を見つけ出す」なんてことが可能になるかもしれない。

必要な要素としては、以下のような感じかな。

  • 検索連携I/F URL
    • TrackBackにおけるTrackBack Ping URLみたいな感じか。いや、どちらかというとPingBackサーバーURLに近いかも
  • その呼び出しはどのサイトから行われたものか
    • 直接の呼び出し元と、大元の呼び出し元のどちらの情報も得られた方がいいだろうな
  • その呼び出しが何階層目の呼び出しか
    • たとえば最初に?count=3とかで呼び出すと、以降階層をたどるごとに?count=2、?count=1とか減っていって、?count=0になったらその階層で打ち止め、なんてのもありかな
  • その検索結果はいつ実行されたものか
    • たぶん検索結果をある程度キャッシュして再利用しないとつらそうだから、キャッシュ更新時刻を返すようにしておいた方がよさそうだ。
  • その呼び出しはいつ実行されたものか
    • タイムアウト時間とかを考えると、大元の呼び出しが実行された時間が正確にわかった方がよさそう。「すでに呼び出しから30秒も経っているから、まだcountは残っているけど次の階層は呼び出さずに結果を返そう」とか。

2004/4/14

blogmap新着全文検索がどうにかならないかなー、などと、すっかり忘れていたネタを思い出していじろうとしたら、いつの間にやらEstraierがバージョンアップしていた。前回使ったバージョンからの主な変更点としては、

  • コマンドライン検索が可能になった(estxview)
  • メタ検索用インターフェースが標準で用意された(estmerge.cgi)

ってあたりか。どちらもなかなか俺的には楽しそうなバージョンアップだ。

けどそれよりも先に、blogmapの新着全文検索をなんとか回す手段を思いつけないかなー。ひとまずestautoregを使って分割インデックス生成+合成を試してみたりしているけど、やっぱり頻繁に更新される数万文書のインデックス生成は結構つらそうな気配。

Published At2004-02-25 00:00Updated At2004-02-25 00:00