[検索エンジン自作][1] 全体像と処理の流れを把握する

どうも、すえきあおいです。フリーランス業でお世話になっているお客さんから「検索エンジン自作できん?」という興味深いご依頼をいただきました。

おもしろそうなので「わかんないけどやってみます!」と即答。まぁできるかどうかは保証してません汗

 

題して、検索エンジン自作チャレンジ!(イエーパチパチ

 

検索エンジン自作チャレンジ① まずは全体像を把握する

検索エンジン、、、って言われてもピンとこないので、全体像どんな感じやねん、というのを調べてみました。参考資料はこちら


作るモノとしては、この3つ。

  • クローリング/スクライピングするアプリ:WEBページを巡回して、HTMLを収集する
  • 検索エンジン
    • インデクシング処理:収集したHTMLを使ってindex(索引)を作る
    • 検索処理:受け取った検索ワードで全文検索して、スコアリングして、並べ替える
  • 入出力するWebアプリ:検索ワードを入力させたり、結果を表示するWebアプリを作る

ふむ。普通に大変そうですな。。。( ´∀`)

検索エンジンが未知数で一番難しそうだけど、前後のクローリングとかWebアプリとかもまぁまぁ手間がかかりそう。でも特に期限は切られてないので、気長に勉強しながら作っていこうと思いマウス

 

検索エンジン自作チャレンジ② インデクシング処理の流れを把握する

インデクシング処理の流れはこんな感じらしい。

  1. 文書を受け取る
  2. 文書を分割する
    1. 文書全体に処理
    2. トークン分割
    3. トークンごとに処理
  3. 文書やトークン情報を保持
  4. ポスティングリストを作成
  5. 転置インデックスを更新・保存

コレだけみてもピンとこない、がとりあえず了解。

検索エンジン自作チャレンジ③ 検索処理の流れを把握する

検索処理の流れ

  1. クエリ受け取り
  2. クエリパース
  3. インデクシング時のtokenの形に揃える
  4. ポスティングリストを取得する
  5. ポスティングリストをマージする
  6. 文書を取得する
  7. スコアリングする
  8. 並び替える
  9. 結果を返す

パースってなんぞ。。。まぁこの辺も実装しながら勉強していけばいいや。

 

検索エンジン自作で調べてると、「転置インデックス」「スコアリング」らへんが重要なキーワードっぽい。よく見かけるから。とりあえず、また勉強したら記事にします。

 

参考文献

 

それでは!

末岐 碧衣
  • 末岐 碧衣
  • フリーランス のシステムエンジニア。独立後、一度も営業せずに月収 96 万円を達成。1986年大阪生まれ。早稲田大学理工学部卒。システムエンジニア歴 12年。
    2009年、ITコンサルティング企業に入社。3年目でコミュ障が爆発し人間関係が崩壊。うつにより休職するも、復帰後はコミュ障の自覚を持ち、「チームプレイ」を徹底的に避け、会社組織内においても「一人でできる仕事」に専念。社内外から評価を得た。
    無理に「チームプレイ」するよりも「一人でできる仕事」に専念した方が自分も周囲も幸せにできることを確信し、2015年フリーランスとして独立。