【初心者向け】全文検索についてまとめてみる


Elastic Search について勉強しようと思ったのですが、そもそも検索処理についての知識が全然ないことに気がつきました。
そこで、今回は全文検索についてまとめてみました。

全文検索とは

全文検索(ぜんぶんけんさく、英: Full text search)とは、コンピュータにおいて、複数の文書(ファイル)から特定の文字列を検索すること。「ファイル名検索」や「単一ファイル内の文字列検索」と異なり、「複数文書にまたがって、文書に含まれる全文を対象とした検索」という意味で使用される。

全文検索 - Wikipedia

簡単にいうと、たくさんのファイルの中から「文章内に特定の文字列を含む」という条件を持つファイルを見つけるといったところでしょうか。
ファイル名が条件での検索でもなければ、一つのファイルに対しての検索でもないということです。
文章だけではイメージが付きづらいので、実際に Visual Studio Code の検索機能を使いながら見ていきます。


三つのHTMLファイルを用意しました。
それぞれの内容は下記の通りです。

sample-1.html
<h1>今日の夕食はカレーライスです。</h1>
sample-2.html
<h1>今日の夕食はラーメンです。</h1>
sample-3.html
<h1>今日の昼食はカレーライスです。</h1>

まずは「カレーライス」という文字列を含むファイルを全文検索してみます。
ちなみに全文検索は、アクティビティバーの虫眼鏡アイコンもしくは ⌘ + shift + F で開けます。

「カレーライス」を文章内に含む、sample-1.htmlsample-3.htmlがヒットしました。
続いて「夕食」という文字列を含むファイルを全文検索してみます。

「カレーライス」を文章内に含む、sample-1.htmlsample-2.htmlがヒットしました。
では最後に「昼食」という文字列を含むファイルを全文検索してみます。

「昼食」を文章内に含む、sample-3.htmlのみがヒットしました。

まとめ

  • 複数ファイルが検索対象
  • ファイル名ではなく、ファイルの内容が検索対象

調べている途中で気がつきましたが、全文検索技術は今まで当たり前に使っていた技術でした。
きっと他にも名も知らずに使っている技術はたくさんあるはず。
機会があれば全文検索の方式である逐次検索方式、索引型検索方式についてまとめてみたいと思います。

参考

検索ログと検索エンジン | Think IT(シンクイット)
全文検索 - Wikipedia