検索エンジンの2単語以上の検索について
最近、検索エンジンに非常に不思議に思っています。SQLなど検索効率のことが分かる方に質問です。
あまりにも速すぎる検索ができることです。
実際の検索の部分がどのような設計になっているのか検討がつきません。そこでどのような仕組みになっているのか、解説できる方がいましたら、教えて頂きたいです、ベールに包まれた謎の仕組みを・・・。
疑問に思っているのは形態素解析後の実際の検索部分です。
1単語で検索されることを前提とすると、単純に先頭の文字コードからインデックスを作ればよく、世界に1つもない単語であっても、もっとも近い付近から探せば「ない」という結果がすぐにわかります。
問題は次のステップで、2つ以上の単語の組み合わせの場合どのような仕組みになっているのかということです。絞り込み検索の仕組みがどのようになっているかということです。
自分が考えた方法では、例えば、
ページ情報テーブル、コアラテーブル、ラッコテーブル、を作り、
ページ情報テーブル
ABDEFSD,http://animal-rakuen.dom/koara_to_rakko/
VBCEFSD,http://animal-rakuen.dom/koara/kaisetsu/
CBFEFSD,http://rakko.dom/
DBGEFSD,http://uminoikimono.dom/rakko/
・・・・
コアラテーブル
ABDEFSD
VBCEFSD
・・・・
ラッコテーブル
CBFEFSD
ABDEFSD
DBGEFSD
・・・・
のようなテーブルを作り、コアラとラッコの積集合を求め、重なっているものをページ情報テーブルよりさがすという方法を考えましたが(大まかな考え方です)、件数が多くなっていった場合で検索結果が存在しない時はインターセクションでは遅すぎるので現実的ではないと思います。ですので、非常に不思議に思っています。2単語以上の検索について、その内部的な仕組みがどのようになっているのか・・・。考えつく方いらっしゃったら是非勉強させてもらいたいです!宜しくお願いします。
お礼
ありがとうございました。大変助かりました。