You didn't mention it in your list of technologies that you're using, but don't overlook using Lucene.NET. It does searching very well and is fairly easy to setup. Basically, you add documents to an index, and Lucene efficiently manages the index. That way, you can search the index instead of loading documents one by one and looking at their properties.