ここでは検索用語のインデックスについて解説する。
インデックスとは、
効率的な検索ができる状態にすることである。
検索技術では目次を作ることが超重要
目の前に国語辞典があり、
「カブトムシ」という単語を調べたいとする。
この場合、「カブトムシ」の説明を探す方法は2通り存在する。
- 索引で「カブトムシ」を探し、そこに書かれているページを開く
- 「カ行」の最初のページを見つけ、パラパラとページをめくって見つける
どう考えても、「カブトムシ」の説明にたどり着けるのは
1のやりかたの方が早い。
察しの良い人は分かると思うが、
インデックスするということは
国語辞典の索引を作ることである。
実際のWebサイトではどうか
実際のWebページでは上記で例えた「カブトムシ」に相当するものが
「Webサイト1ページ分の内容」である。
その上、世界中には何十億ものWebサイトが存在する。
2の方法で検索をしようものなら、
高性能なマシンを使っても数時間では終わらないだろう。
こう考えると、あらかじめインデックスをしておく
という作業がどれだけ大切かが分かると思う。
Google検索におけるインデックスの仕組み
GoogleはGooglebotと呼ばれるプログラムを使って
世界中に存在するWebサイトを一つ一つ確かめ、インデックスを行う。
- Googlebotが世界中のサイトを巡回する
- 新しいページを見つける
- どのキーワードで検索されるようにするか/検索順位はどうかを決める
- インデックスを行う
- Googleの検索結果に反映される
新規にWebサイトを作成してから、
それが検索結果に表示されるようになるまでには
このような手順を踏んでいる。
よくSEO対策と呼ばれているものは、
この手順で言う
「どのキーワードで検索されるようにするか/検索順位はどうか」
というところで
より自分の目的にあったキーワードで、より順位が上になるように工夫することを指す。
ちなみに、Googlebotに自分のサイトの情報を伝えるのが
この記事で解説しているサイトマップである。
検索の技術的な話
検索の仕組みや概要は分かったが、
どのような技術が使われているかに少しフォーカスする。
ここにサイトAとサイトBがあり、
それぞれ果物の名前が以下のように書かれているとする。
サイトA
りんご
ばなな
サイトB
りんご
みかん
これらをもしそのままデータベースで表すとしたら、こんな感じだ。
サイト名 | 単語 |
サイトA | りんご、ばなな |
サイトB | りんご、みかん |
「りんご」と書かれたサイトを探したい場合、
- データベースの「単語」の項目に注目する
- 一つ一つ見ていく
- 構文解析を行い、「りんご」の文字列が含まれているかどうかチェックする
- 一度ヒットしてもまだ存在するかもしれないので、全部の行を確認する
- 上記で該当した「サイト名」を表示する
という処理が必要になる。
この例ではサイト数と単語数が少ないので大したことないが、
これが数十億ものサイトだった場合、大変な作業である。
とても数秒で終わる処理になるとは考えられない。
そのため、あらかじめバッチ処理などで
検索に特化したデータベースに詰め込んでおく。
例に挙げたWebサイトの場合、以下のようになる。
検索キーワード | 検索結果に表示するサイト |
りんご | サイトA、サイトB |
ばなな | サイトA |
みかん | サイトB |
このような形でデータを保存しておくことで、
「りんご」と検索した場合
- 「検索キーワード」に注目する
- 一つ一つ見ていく
- 「検索キーワード=りんご」に一致する行にヒットする
- キーワードごとにまとめられているので、後続のデータは見る必要がない
- ヒットした「検索結果に表示するサイト」をそのまま表示する
という流れになる。
Webサイトの量が大量だった場合、
検索速度に差が出ることは明白である。
インデックスとは、このような検索特化のデータベースを作成することであり、
このような仕組みを作ることで検索時の負荷や検索速度の改善につながる。
まとめ
- インデックスとは、本の索引をつくるようなもの
- インデックスとは、検索特化のデータベースを作ること
- 検索順位を上げるように頑張ることがSEO対策