2

Windows 2012 R2 サーバー上のファイル共有に Web インターフェイスを表示するプログラムを作成しました。Web アプリケーション内で、そのサーバーで実行されている Windows Search インデックスにクエリを実行する機能を追加して、ユーザーが結果を取得できるようにしました。以下は、インデックスで検索するために使用されるクエリです。

SELECT System.FileName, System.ItemPathDisplay, System.ItemType, System.Size, System.ItemDate, System.DateModified
FROM myserver.systemindex
WHERE SCOPE='file://myserver/myshare' AND System.FileName LIKE '%<somevalue>%'

ファイル名の数字を除いて、ほとんどのシナリオでうまく機能します。全体として、すべてのグループのみが番号をグループ化しているように見えます。たとえば、「G-5687-R2.txt」という名前のファイルがある場合、「G」、「G-5687」、「5687」、または「2」を検索すると、ドキュメントが返されます。ただし、「G-56」または「56」を検索しても何も返されません。Windows エクスプローラー内で「56」検索を実行すると、ドキュメントが返されるため、クエリに何かが欠けていると思います。

以下の完全なコード:

string searchLocation = "file://myserver/myshare";
string searchString = "56";
OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = "Provider=Search.CollatorDSO.1;Extended Properties='Application=Windows';";

OleDbCommand cmd = conn.CreateCommand();
cmd.CommandText = string.Format("SELECT System.FileName, System.ItemPathDisplay, System.ItemType, System.Size, System.ItemDate, System.DateModified FROM " +
" myserver.systemindex WHERE SCOPE='{1}' AND" + 
" System.FileName LIKE " +  " '%{0}%'"
, searchString, searchLocation);

conn.Open();
OleDbDataReader rdr = cmd.ExecuteReader();
4

0 に答える 0