2013-06-30 39 views
18

Tôi đang tìm một mã nhận kết quả tìm kiếm toàn văn bản bằng cách sử dụng tìm kiếm Windows (nó sẽ có sẵn trong Vista, 7 và 8 theo mặc định).Tìm kiếm trên Windows - tìm kiếm toàn văn bản trong C#

Tôi đã tìm thấy một số câu hỏi ở đây và một số văn bản trên msdn, nhưng không ai trong số họ có một số mã chính xác hoạt động. Tôi đã thử với Windows API Code Pack (vì nó được nhắc đến như một trong các giao diện cho Windows Search), nhưng nó chỉ trả về kết quả cho tên tập tin, không phải cho toàn văn.

+0

Bạn có ý nghĩa gì với 'Toàn văn '? – Shaharyar

+1

Toàn văn có nghĩa là tìm kiếm Windows sẽ tìm kiếm văn bản (nội dung) của các tệp tài liệu (như .txt, .doc, .docx, .pdf), không chỉ là tên tệp hoặc thuộc tính của nó. Nếu bạn tìm kiếm bằng Windows Explorer, điều đó là có thể, do đó, nó sẽ là có thể. –

Trả lời

27

Dưới đây là đoạn code mà làm việc - trong ví dụ tôi đã làm cho nó để tìm kiếm cho từ "giả" trong thư mục máy tính để bàn:

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

Hoạt động trên Windows 8.1 ở chế độ máy tính để bàn – slayernoah

+0

Điều này không hiệu quả đối với tôi nếu bạn muốn tìm một phần của một từ. Ví dụ: nếu tài liệu chứa 'giả' và tôi đã sử dụng mã ở trên để tìm kiếm 'dum'. Bất kỳ ý tưởng làm thế nào để sử dụng thẻ hoang dã ở đây? Chỉ cần thêm một '*' dường như không hoạt động. – slayernoah

+0

@slayernoah bạn đã thử * để tìm kiếm? không phải giải pháp – Kiquenet

1

Hãy xem ví dụ DSearch. Windows Search Code Samples

Đó là những gì bạn muốn.

+0

Cảm ơn bạn, tôi đã tìm ra giải pháp. Đó là một trong những trang tôi cần, nhưng nó đã đủ xa (ví dụ sql đó không giải thích cú pháp sql có sẵn cho Windows Search, điều cần thiết cho tôi và vấn đề tôi đã đề cập). Bạn có mã hoàn chỉnh hoạt động trong câu trả lời của tôi ở trên. –

+2

Liên kết tải xuống mẫu MS ngoại tuyến :) – zozzancs

Các vấn đề liên quan