検索インタフェース

検索エンジンについてはある程度語られ尽くした感がある。既存のディレクトリ型検索エンジンに対して、googleが斬新なロボット型検索エンジンを世に送り出して、、というストーリは数年前によく聞いた。今やロボット型検索エンジンが主流である。


どうしてこのような状況になったのか。ロボット型検索エンジンの検索精度が十分に良かったからなのか。自分は、大切なのは情報を発信する人間と検索する人間の間に、検索エンジンを利用するという共通のインタフェースが生まれたことだと思う。


そもそも、検索エンジンの精度は原理的にある程度以上よくなり得ない。それは、ウェブ空間が一枚岩であり、かつその中のエントリ間で命名規則が存在していないためである。そのため、異なる対象で名前が衝突することを防ぐ術が存在しない。「C Language」では、C言語に関する情報以外の不必要なエントリに該当する。


このようなに名前の衝突が起きた場合には、一般にはもう一度クエリを拡張して再検索する(C Language Programmingなど)。しかし、この場合適切なクエリを選択しなければならない問題が生じる。調べたい事柄によっては適切なクエリの拡張が選択できるかもしれないが、そうでない場合には得られる情報に不必要なバイアスをかけてしまう可能性もある。


PageLankに代表されるようなランキング手法はこういった問題を対処するためのものである、という意見もあるかもしれない。しかし、単一のクエリに対して複数の検索意図が考えられるような場合には、このようなアルゴリズムでも対処できないのである。


重要なのは、検索エンジンが扱っているのは静的なアーカイブではなくて、日々新たなエントリが作成される動的なWeb世界だということである。ロボット型検索エンジン登場後もWebページは作成され続けた。人々は検索エンジンを使った検索の仕組みについて理解していた。そのため、検索エンジンによってアクセスされることを想定した情報発信をしていったのだと思う。検索エンジンに合わせた、というとSEOが想起されるかもしれないが、各種Webサービスが既存の名前と衝突しないようにできているのも、検索エンジンの特性にあわせて決まった構造だろう。


検索エンジンはあくまで情報をやりとりするためのインタフェースであり、その単純なインタフェースを使って必要なことができるように人々がWeb世界をつくった。それが現在の状況だと思う。