検索エンジンはいかにして動くのか?

第1回 検索エンジンとは

この記事を読むのに必要な時間:およそ 1.5 分

はじめに

検索エンジンと聞くと,みなさんは何を思い浮かべるでしょうか?

GoogleやYahoo!などの検索ページを思い浮かべる方がほとんどだと思います。近年は,それら企業の努力によって検索エンジンというものが非常に身近になり,私たちの生活に欠かせないものとなりつつあります。

しかし,検索エンジンと一言で言っても,上記のような一般の方々へのUI(ユーザインターフェース)を指す場合もあれば,そのUIの裏側(バックエンド)にあるシステムを指す場合もあります。

本連載では,Google,Yahoo!などを代表とする検索エンジンの裏側のしくみに着目し,検索エンジンというシステムのアーキテクチャやその内部で使われているデータ構造やアルゴリズムを,近年の手法や研究事例などを交えて解説していきたいと思っています。

検索エンジンとは

検索エンジンには,さまざまな種類があります。GoogleのWeb検索のようなものは,一般的に全文検索エンジンと呼ばれます。その他にも,画像検索エンジン,動画検索エンジンなど,多くの検索エンジンが存在します。本連載で紹介するのも,もちろん全文検索エンジンについてです。

では,この「全文」とはどういう意味でしょうか?

答えは単純で,全文とは「全」部の「文」という意味になります。つまり,検索を行いたい対象はテキスト文書の全部の文であるという場合は全文検索と呼びます。そして,そのような全文検索を実現するシステムが全文検索エンジン/全文検索システムと呼ばれます(英語では,full-text search engine/full-text search systemと呼ばれます)⁠全部の文を検索するといっても,普段Google,Yahoo!などを使って指定したキーワードを含むWeb上のあらゆるページを検索している私たちにとっては,あたりまえのことだと感じるのではないでしょうか。

また,補足になりますが,画像/動画検索エンジンでは,画像・動画の特徴量を使って検索を行うといった処理が行われているようです。しかし,画像検索・動画検索と呼ぶ場合でも,画像や動画の周辺のテキスト情報や画像のメタ情報を使って検索している場合はテキスト情報を検索していることになるので,正確には全文検索エンジンとなります。

以降本連載では,⁠検索エンジン」と書いた場合は全文検索エンジンを指します。

さまざまな全文検索エンジン

近年,検索エンジンはいろいろな場面で使われています。

もっとも身近なWeb検索をはじめ,メール検索やデスクトップ検索,そして特許検索やブログ検索などのドメイン特化型検索などが挙げられます図1)⁠

図1 検索の用途と規模

図1 検索の用途と規模

これらはすべて検索エンジンとしての基本となる仕組みは同じですが,規模やユースケースの違いから異なるアーキテクチャやデータ構造をとることがあります。

たとえば,メール検索やデスクトップ検索では,保存・検索したい文書量はそれほど多くありませんが,新しいメールや文書が追加されたら,それらをすぐに検索できるようしたいと思います。一方,Web検索では,大量の文書を保存しなければなりませんが,Web上にHTMLページが1つ追加されても,それが検索できるまでには多少の時間がかかっても許容できると思います。

このように,一言に全文検索エンジンと言っても,さまざまな形態や種類があります。本連載では,中規模から大規模の検索エンジンに主に焦点を当てて,解説を行っていきたいと思います。

著者プロフィール

山田浩之(やまだひろゆき)

日本IBM株式会社を経て,ヤフー株式会社等で検索エンジンの開発に従事。現在は大学院でデータベース・情報検索の研究を行う。また,オープンソースで全文検索エンジンLuxやデータベースマネージャLux IOの開発を行っている。

コメント

コメントの記入