質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.32%
Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

729閲覧

ファイル検索の仕組みの構築について

taka0920

総合スコア4

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

2クリップ

投稿2025/03/14 06:49

編集2025/03/14 07:14

実現したいこと

ファイルを検索する仕組みの作成を検討しています。

イメージとしては、検索用のテキストボックスに任意の文字を入力することで、その文字を含むファイル名を検索し、検索結果をクリックするとそのファイルが開くような動作をする仕組みです。

サーバにフォルダを用意してその中のファイルを作成した仕組みを通してクライアントから参照し、検索することを想定しています。

エクスプローラ上でも同じようなことはできると思いますが、ファイル数が多くなると検索までの動作が遅いのと、あまりPCに詳しくないユーザも多くいるためそのようなファイル検索画面を作成できれば便利なのではないかとのことからそのような機能の作成を検討しています。

できればEXEではなく、ブラウザで動く仕組みで考えていますが、ほかに何か良い実現方法があればご教示いただけますでしょうか。
ASTERIAも活用が可能であれば利用を考えています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otn

2025/03/15 04:19

> 任意の文字を入力することで、その文字を含むファイル名を検索し、 という文章は、そのフォルダーにaaa.txt、abc.txt、def.txtというファイルがあったときに、 「a を入力すると aaa.txt と abc.txt というファイル名2つを探し出す」という意味ですがあってますか? ただ、 > ASTERIAも活用が可能であれば利用を考えています。 と書いているので、ファイル名じゃなくて、ファイルの中味の検索をしたいのではないかという気がします。もしそうなら、質問文章の記述を正しく書き直しましょう。 中味の検索であれば、 ・量は具体的にどれくらいか?ファイル数、合計ファイルサイズ ・内容は随時変更されて直近の状態で検索するのか、夜間処理でその時点のデータで索引を作ってそれを使う(=前日の内容で検索)でもいいのか? などで、自作するのか市販ツールを使うのかの選択基準になるかと思います。 > そのファイルが開くような動作 も、普通は「そのファイルの中味を表示する」ような意味になりますが、あってますかね?
taka0920

2025/03/16 23:14

ご回答ありがとうございます。 ファイルの中身ではなくファイル名を検索したいという意味になります。 >> そのファイルが開くような動作 >も、普通は「そのファイルの中味を表示する」ような意味になりますが、あってますかね? 検索結果をクリックすると、ファイルを開いてファイルの中身を表示したいという意味になります。
otn

2025/03/17 07:41

なるほど。ファイル名で良かったのですか。 「ローカルファイルのファイル名での検索」であれば、回答にあるEverythingが簡単でユーザーインターフェースもよく快適ですが、「ファイルサーバー上のファイルのファイル名での検索」だと難しい。 Everythingにもファイルサーバー上のフォルダーも対象にする機能はありますが、「あらかじめファイル名一覧を作っておくことで検索を速くする」ツールなので、「あらかじめサーバーフォルダーをなめ回してファイル名一覧を作る」を数十人の人が検索したいかどうかにかかわらず定期的に行う訳なので、ファイルサーバーの負荷が大きくなりますね。人数と頻度次第ですが。 あるいは、ファイルサーバー上で「ETPサーバー」を常に動かしていればETPがファイルサーバーローカルでファイル一覧を作成するので大丈夫ですが、「ETPサーバー」の情報があまりありません。 お書きのように、ファイルサーバー上でHTTPサーバーを動かしてそこから検索するブログラムを起動するのが分かり易い気がします。これも、下記の検討が必要です。 ・時間が掛かってもいいので毎回、直近の状態で検索する ・検索を速くするために、夜間処理でその時点のファイル名一覧を作ってそれを使う(=前日の内容で検索) あるいは、これは多分社内ルール的に無理そうに思いますが、各自からのサーバーへのリモートデスクトップ接続が可能なら、サーバーローカルにEverythingをインストールしてRDPでそれをつかうとか。
taka0920

2025/03/17 23:29

各ユーザーにリモートデスクトップでサーバーにアクセスさせるのはリスクがありそうなので避けたい思いがあります。 アドバイスいただきましたように、ファイルの検索はできたとしてもそこから各ファイルにアクセスしファイルを開くといった動作は難しそうですね。 再度仕様を見直して検討をしたいと思います。
utm.

2025/03/17 23:52

ブラウザで動かしたいという話でおそらく、操作の難易度的な問題だと思うのですが、現状ファイル検索をするのに本当に困っている人であれば操作の難易度が少しくらい高くても使うだろうし、困ってない人とか問題意識がない人はどれだけ操作難易度が簡単でも使わないと思うんですよね。 色んな人と交流ある訳じゃないので予測ですけども。 Everythingというソフトウェアを初めて知ったのですが、 ファイル検索に困っている人はファイルサーバーに負荷がかかろうと、早くなるなら嬉しいはずですし、ファイルサーバーに甚大な負荷がかかるほどファイル数が多いのであればそれだけ今まで検索に時間がかかっていたわけだから、諸手を挙げて大歓喜な事態だと思うんですよね。 調べてみると、Everythingにコマンドラインインタフェースがあるので、ほかのプログラムから起動したりもできるだろうから、自作でインデックスやキャッシュを作成する必要もなさそうです。 好評だとか、使い方がわからない人が続出するとかなら、マニュアルを作るとかブラウザでGUI操作を提供するとかでいい気がしませんか。 と、現状のファイル検索の作業に従事している人を想像してみて思いました。 実際問題、ツールを作ると利用者からクレームや改善要望が来るかもしれないし、逆に全然使って貰えないかもしれないってことは考慮した方がいいかと思います。 あんまり甘やかしても徒労になるんじゃないかと推測します。 あと、まあ休憩中の雑談でいいので社員同士で話してみてファイル検索が遅いと思っている人がいるのかどうかみたいな所をヒアリングして、実際にやるかどうかを決めた方がいい気がします。 まあ投稿者さんが問題に感じている時点で十中八九他の人も100%問題に思っていそうですが。
otn

2025/03/18 14:52

> アドバイスいただきましたように、ファイルの検索はできたとしてもそこから各ファイルにアクセスしファイルを開くといった動作は難しそうですね。 ?? ファイル名が分かれば、そのファイルの中味を表示するのは簡単だと思うのですが、何かそれと違うことを言ってるのでしょうか? > ファイル検索に困っている人はファイルサーバーに負荷がかかろうと、早くなるなら嬉しいはずですし、 多数の人が様々なタイミングでファイルサーバーに負荷をかけると、それが他人とかち合うと、インデックス作りに時間が掛かるので、その間は検索できないと思いますけど。 もちろん、検索する人が2,3人とかなのでインデックス作りの時間のかちあいは無視できるとか、あるいは100人いるけど夜間もクライアントPCの電源入れっぱなしなので、夜間にインデックスをt食っておくとかでいいなら問題ないと思います。つまり、人数とファイル数、さらに運用形態次第ですが、数的情報が何も無いので、なんとも言えないところです。 今のところは、 ・ユーザー数 ・ファイル数 ・前日ベースでいいか、その時点直近の情報必須か などの情報がゼロなので、「状況に応じて方法を考えましょう」としかアドバイスのしようが無いです。
utm.

2025/03/19 03:45

>多数の人が様々なタイミングでファイルサーバーに負荷をかけると、それが他人とかち合うと、インデックス作りに時間が掛かるので、その間は検索できないと思いますけど。 Everythingのようなソフトウェアを導入することで今までできていた方法でのファイルの捜索も出来なくなるのであればそれは問題ですね。 詳しくないですが、インデックスの作成や更新をするのにそんなに負荷かかるものなんですね。
otn

2025/03/20 10:35

> インデックスの作成や更新をするのにそんなに負荷かかるものなんですね。 ディレクトリーを読むので、対象全フォルダー数次第かと思います。それがクライアントの数だけ同じ事が行われるので、数が不明な状態では何とも言えません。 クライアント10、フォルダー数10とかなら問題になるレベルではないと思いますけど、クライアント1000、フォルダー10000とかなら、実測した方がいい気がします。 数については無回答ですね。 これも具体的な数字が書いてないのですが、Explorerの検索で遅いとのことなので、5分10分あるいはそれ以上なのかなと思っています。 ふと、今思いましたが、Explorerの検索で、「XYZという文字列をファイル名に含むファイルを探したい」というときに、検索欄に「名前:XYZ」でなく「XYZ」とだけ入力すると、ファイル名だけじゃなくてファイルの中味まで読んで探すので、それに該当するなら「名前:XYZ」と入力するようにガイドすれば良いかもしれません。それで待てる時間に縮まるかどうかは数次第というのは同じですが。
guest

回答2

0

投稿2025/03/14 07:42

poto568

総合スコア342

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

taka0920

2025/03/16 23:10

ご回答ありがとうございます。 Everythingというソフトは知りませんでした。 案の一つとして参考にさせていただきます。
guest

0

ベストアンサー

サーバにフォルダを用意してその中のファイルを作成した仕組みを通してクライアントから参照し、検索することを想定しています。

意外ともう忘れられてしまっている感がありますが、Windowsには「Windows Search」と言うファイル名やファイルの中身を対象に検索する機能をWindows Vistaの時代から標準で搭載していて、ユーザー独自のプログラムからもその機能を利用することができます。

Windows Search 開発者ガイド - Microsoft Learn

最近ではSSDが一般化したことを含め、PC自体のスペック向上に伴ってこの機能が無効化されたまま(≒存在を忘れられたまま)になることも多いように思いますが、まだ現役で使える機能です。この機能をWindowsのファイルサーバー側で有効にし、検索機能を提供するWEBアプリとして公開することでWEBブラウザーで扱うことも可能になります。

今回のご質問内容に興味がわいて検索してみたところ、実現可能性を考える上でサンプルとして適切と思える記事がヒットしましたのでご紹介しておきます。

Windows Search ASP.NET - CODE PROJECT

こちらのサンプルコードはASP.NETで動作するWEBアプリで、これまたWindowsで標準で使えるIISでホスティングすれば動作します。

画面上部、HTMLのtextareaに入力したクエリーでファイル名やファイルの内容自体の検索形式を指定します。
例えば「ファイル名に'hoge'が付くか、ファイル名が't2.vbs'か、ファイルの内容に文字列'テスト'が含まれるファイルの一覧を得る」例として、以下のように指定します。

plain

1SELECT System.ItemUrl, System.ItemName, System.ItemType, System.KindText, 2 System.Filename, System.Size, System.DateModified, System.Search.Rank 3FROM SystemIndex 4WHERE scope ='file:C:\' 5AND System.FileName LIKE '%hoge%' 6OR System.FileName = 't2.vbs' 7OR CONTAINS('テスト')

※日本語文字列でファイルの内容自体を検索する場合、ファイルはUTF-16でエンコードされている必要がありました。この辺りはHTMLやASP.NETのスクリプト側の文字コードの指定等、追加で対応が必要になるかと思います。

当方のWindows 10環境で試した画像を示しておきます。Windows 10のIISに上記WEBアプリを配置し、ASP.NETを有効にして稼働させ、Microsoft Edgeで動作させたものです。特別なものは入れていません。

イメージ説明
WEBブラウザー上でクエリーを指定することで、サーバー側でWindows Search機能を実行し、結果をレスポンスとして返してWEBブラウザー上に表示するというかんじが伝わりますでしょうか。紹介させてもらったプログラムをそのまま稼働させただけなので、一覧に表示されているファイルをクリックすることでそのファイルをダウンロード、表示するような機能は自力で別途追加する必要があります。簡単に考えた限りクリックされたファイル名を特定してサーバー側で読み出し、適切なContent-Type:等を指定してHTTPレスポンスとして返せば、ファイル自体をダウンロードしたりWEBブラウザー上で表示したりできるでしょう。

注意することは色々ありますが、ファイルサーバーがWindows Serverだとすると「Windows Search」サービスを有効化する必要があります。
その上でファイルを配置するディレクトリ(フォルダー)をWindows Searchのインデックス作成対象に追加します。

Windows Server 2016 では Windows Search が既定で無効になっています - Microsoft Learn

尚、技術的な話とは離れますので詳しくは述べませんが、Windowsで稼働させているファイルサーバーはWindows Server、Windows 10等のクライアントOS共に、クライアントから同時にアクセスできる数はWindowsのライセンス上でも制限があるはずなので、ご注意ください

投稿2025/03/19 06:35

dodox86

総合スコア9356

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dodox86

2025/03/19 06:52

技術的な観点から回答はしましたが、質問者であるtaka0920さんやその機能を必要としている人々の立場を記載するとよかったかもですね。その機能を作る人はデベロッパーですが、それを利用する人が例えば営業やマーケティング等、他部署の方々であれば必ずしも新しいプログラム(製品)が欲しい訳ではないはずです。その気になって作ったはいいが評価する人の立場や観点が違ってダメになるケースも多いです。時には新しいものをあえて作らないのもソリューションのひとつでしょう。
taka0920

2025/03/26 23:51

ご回答ありがとうございました。 今のところ要望が出ているというわけではないのですが、保管するファイルの保管数が増えるとエクスプローラでの検索が不便になるだろうということが想定されるため、今のうちから準備できたらという思いでした。 開発するとなった際は、今回ご回答いただきました内容参考にさせていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.32%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問