2013-06-30 3 views
18

Я ищу код, который получает результаты полнотекстового поиска с использованием поиска Windows (он должен быть доступен в Vista, 7 и 8 по умолчанию).Поиск в Windows - полный текстовый поиск в C#

Здесь я нашел несколько вопросов и некоторые тексты на msdn, но ни один из них не имеет точного кода, который работает. Я пробовал с Windows Code Code Pack (как он упоминается как один из интерфейсов для Windows Search), но он возвращает результаты только для имен файлов, а не для полного текста.

+0

Что вы подразумеваете под 'FullText'? – Shaharyar

+1

Полный текст означает, что поиск в Windows будет искать текст (содержимое) файлов документа (например .txt, .doc, .docx, .pdf), а не только имя файла или его свойства. Если вы выполняете поиск в Проводнике Windows, это возможно, поэтому это должно быть возможно. –

ответ

27

Вот код, который делает работу - в примере я сделал это, чтобы найти слово «манекен» в папке рабочего стола:

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(); 
+1

Работает на Windows 8.1 в рабочем режиме – slayernoah

+0

Это не работает для меня, если вы хотите найти часть слова. Например: если документ содержит «манекен», и я использовал приведенный выше код для поиска «dum». Любая идея, как использовать дикие карты здесь? Просто добавление '*', похоже, не работает. – slayernoah

+0

@slayernoah Вы пробовали * для поиска? не решение – Kiquenet

1

Посмотрите на пример DSearch. Windows Search Code Samples

Это то, что вы хотите.

+0

Спасибо, я уже нашел решение. Это была одна из страниц, которые мне нужны, но это было далеко не так (этот пример sql не объясняет наличие синтаксиса SQL для поиска Windows, что было необходимо для меня и проблемы, о которой я упомянул). У вас есть полный код, который работает в моем ответе выше. –

+2

MS образец скачать ссылку в автономном режиме :) – zozzancs

Смежные вопросы