4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

改めて検索システムの基礎をまとめてみる

Last updated at Posted at 2023-09-06

目的

普段から検索に関する仕事に関わっていますが、検索システムについて深く知るためにインプットしたものをアウトプットとして投稿します。

検索システムとは

検索システムとは一般的には蓄積された情報データの中からユーザが探したい情報を効率よく探し出して、ユーザに表示させるシステムです。例としてGoogleが開発しているChromeが該当します。私達が検索したいことを検索インターフェースに入力し、すぐに検索したいページが一覧で表示されると思います。この流れは普段私達が使うWEBサービス(ECサイト、SNS)でも同じ流れです。

ユーザが検索システムを使用する流れ

  • ユーザは探したい情報を見つけるためにUIに単語を書いていきます.

普段から私達は以下の画像のように検索したい単語を入力していると思います.
search-engine.png
上記の画像はユーザが東京のホテルを探したいときにインターフェースに「東京 ホテル」と入力します.この入力単語はクエリとして検索エンジンに問い合わせをします.すると検索エンジンは対象となるドキュメントを複数レスポンスしてユーザに結果を表示します.
ざっくりとした感じですが,ユーザが使用する検索システムの流れになります.

全文検索

検索システムは、情報の種類や検索の目的に応じて、さまざまな形で実装されています。本記事ではよく聞く全文検索エンジンについて紹介していきます.
全文検索とは複数のドキュメントから特定の文字列を検索する技術です.
例えば以下の画像ように検索インターフェースに対してユーザが「東京のホテルを探したい」と入力するとします.
ユーザが入力した文字列はクエリと言います.
text-analyzer.png
入力した文字列をテキスト解析し,分解します.分解した1つ1つの文字をタームと言います.
分解したタームを元に検索エンジンに保存されているドキュメントを探し出して,その結果をユーザにレスポンスします.
この処理の流れをクエリ処理と言います.

インデクサーとは

インデクサーとはWEB上に存在するウェブサイトなどの情報を収集し,収集したデータをインデックスとして検索エンジンに保存する役割をもつコンポーネントです.
以下の画像がインデクサーの役割の一例となります.
indexer.png

WEB上に存在するWEBサイトをクローラーが収集してきます.その収集したデータをindexerはキーワードやフレーズなどを解析して検索エンジンにindexとして保存する役割を持ちます.

Elasticsearch

Elasticsearchとは高速検索を可能とする,分散型の検索エンジンです.Elastic社が中心になって開発を行っています.Elasticsearchの特徴としては以下があります.

  • スケーラブル
  • 分散型であるため,大量のデータを並行して処理が可能
  • 高可用性

ElasticsearchはECサイトを始めとした多くのプラットフォームで採用されています.多くのユーザを抱えていて大量の検索クエリを処理する必要がある場合で,非常に高いパフォーマンスを発揮します.

Elasticsearchの使用例

  • メルカリ

  • モノタロウ

  • dely

まとめ

本記事では検索システムの基礎についてまとめてみました.まだまだ自分の知らないことが多いので改めて勉強をしていけたらと思いました.

参考文献

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?