見出し画像

共有フォルダの中を検索するシステムを作った話

私が入った企業にある10年以上整理されていない共有フォルダの中身をWebで検索できるシステムを作った話をしていきます。

誰も全体を把握していない、誰にも手をつけれない共有フォルダの存在が発覚・・・

新しく配属された先の部署は社員が30名ほどいる主に市場の調査を行っていました。
私が配属されるまでのあいだの10年以上の間、各業界の担当者が、新しいサービスや商品・トレンド等についての調査を行っていました。

私が新規配属されたチームではあるテーマで市場の調査を行っていました。その市場調査において新しい調査を始めました。
いくつかお題を決め、いざ調査を進めようとした時、この部署に長年いるある社員の方から衝撃的なことを言われました。
「その調査何年か前にやったことありますよ!」
「確か、その調査は共有フォルダの 〇〇年の××という担当者の△△というプロジェクトの□□というフォルダの中の◇◇というところにあった気がします」

私はそんな情報を一切聞いておらず、困惑しました。

ファイル名がバラバラすぎて検索しようとするとファイルの中まで見るハメになりました。

そもそも、共有フォルダの名前のルールのつけ方が人それぞれでした。
最初の階層に 人の名前の場合グループ名の場合進めているプロジェクト名の場合作成したドキュメントの年の場合等、ほとんど無法状態の運用がなされていました。
また、ファイル名の付け方も人それぞれで、人の名前や、概要プロジェクト名だったりと、ファイルの中身は名前をつけた本人しかわからない状況でした。
結果として、 誰が何のファイルをどこに置いたのか! については全容を把握している人は誰一人いませんでした。
長年居る社員さんは、いろいろなプロジェクトを誰がやっていたという記憶があるため、その記憶を頼りに、沢山のフォルダ、沢山のファイルを開いて、目的のファイルを探して教えるという状況でした。

バラバラな名前のフォルダイメージ

共有フォルダの整理に立ち向かうも断念しシステムを作ることに

そこで、共有フォルダを整理しようと思い、立ち向かったものの、共有フォルダの階層が深すぎて全容が掴むのに時間がかかりすぎるし、そもそも、今の部署にいない人の名前のフォルダが沢山あり、誰に何を聞いていいのかについてわからず整理することは諦めました。(古く大きな企業にはあるあるな出来事と思われる)

ただ、共有フォルダの中には何のファイルが眠っているのかについて調べる方法が必要と感じ、検索できるようにしようと思い、勝手に表題にある共有フォルダのファイルを検索するシステムを開発することにしました。

システムの概要

共有フォルダのファイルの中身を検索できるようにします。
ファイル名やファイルのパスの情報だけでなく、ファイルの中身の文字までを見て検索する必要があります。よく使われるファイルはWord、Excel、PowerPoint、txt、csv、pdf等と想定し、ファイルの中の文書をシステム側で読み取り検索できるようにします。これらをWebでキーワード検索できるようにします。検索結果はリストで表示され、ファイルをクリックをするとそのファイルへアクセスできるようにします。このようなシステムを作ります。

システムのイメージ

使った技術は簡単なもの

各ファイルにはファイルの検索するための特徴語を抽出するためにtf-idfというアルゴリズムを用いました。簡単にいうと、他のファイルに含まれる単語は共通で使われる単語、他のファイルに使われていない単語はそのファイルの特徴語として抽出する!という仕組みです。抽出した特徴語をそのファイルのタグとし、データベースに保存し、検索できるようにしました。
毎日深夜に共有ファイルの中身を確認し、データベースをアップデートする仕組みを入れ、毎日データベースをアップデートする運用にし手のかからないようにした。

最後に見つかった課題! でも、課題なのか・・・・

このシステムを導入後に、いろいろな課題が見つかりました。
例えば、共有フォルダの中に他人には見られてはいけないファイルがあると上司から言われました。人事評価などのファイルがそれにあたります。そもそも、共有フォルダに入れてはいけないだろ・・・・と思いましたが、上司が言うので仕方ないと思い、特定のフォルダを検索対象としないという処理を入れて対処しました。

最後に

そもそも、共有フォルダの名前付けのルールが守られていない企業が多く、あるあるの話だそうです。こんな感じで私はシステムを作っております。

この記事が気に入ったらサポートをしてみませんか?