web-dev-qa-db-ja.com

Windowsサーチ-C#での全文検索

Windowsサーチを使用した全文検索の結果を取得するコードを探しています(デフォルトでVista、7、8で利用できるはずです)。

私はここでいくつかの質問とmsdnに関するいくつかのテキストを見つけましたが、それらのどれもが機能するいくつかの正確なコードを持っていません。 Windows APIコードパック(Windows Searchへのインターフェイスの1つとして言及されているため)を試しましたが、結果はファイル名のみで返され、全文では返されません。

18
Ivan Ičin

動作するコードは次のとおりです。たとえば、デスクトップフォルダで「ダミー」という単語を検索するようにしました。

string connectionString = "Provider=Search.CollatorDSO;Extended Properties=\"Application=Windows\"";
OleDbConnection connection = new OleDbConnection(connectionString);

string query = @"SELECT System.ItemName FROM SystemIndex " +
   @"WHERE scope ='file:" + System.Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "' and FREETEXT('dummy')";
OleDbCommand command = new OleDbCommand(query, connection);
connection.Open();

List<string> result = new List<string>();

OleDbDataReader reader = command.ExecuteReader();
while (reader.Read())
{
    result.Add(reader.GetString(0));
}

connection.Close();
29
Ivan Ičin

DSearchの例を見てください。 Windowsサーチコードサンプル

それがあなたが望むものです。

1
user743414