<p>I am thinking of changing my web site's homegrown search engine. Before I break out Visual Studio, I wondered if anyone can suggest an alternative that gives me what I need. This being:</p>

<ul>
<li>Works with an ASP.NET site (is a .NET project)</li>
<li>Creates a file-based index</li>
<li>Fast search across hundreds or thousands of pages</li>
<li>Performs word-stemming to find variations upon words</li>
<li>Gives full control over the output styles</li>
<li>Is cheap (or better still, free!)</li>
</ul>

You can't really beat
Google Site Search
for this.  It's fully customizable - and no need for embedding or maintaining.
EDIT: found this
ASP.NET opensource search engine
that you can take and run with, In response to your comment about knowing what google does, this is
well documented and they have TONS of webmaster tools for you
.