Making Searches SimpleMaking Searches Simple.
One sticky point with many websites is this: they have absolutely terrible search engines. It does make sense, in a way, as searches are complicated to program for, and it takes time to write or implement a search engine on your site. Still, if you do search badly, it's worse than not doing it at all.
Stick to Conventions.
If you look at the established search engines – Google, Yahoo, MSN and the rest – you'll see that they follow a clear set of conventions when it comes to displaying search results. The titles of pages are large, underlined blue links, and they're followed by an extract from or description of the page, and then the page's URL. It looks like this:
Title of first search result
... here is the text where the keyword was found in the search result. the keyword will be in bold...
Search results are ordered most relevant first, and are split across pages if there are a lot of them. The search box should remain at the top of the page with a search button, in case the user wants to edit their search. There should also be an 'advanced search' link, to help users make more complicated queries to your search engine (for example, pages that contain one thing but not another, or only pages in a specific section of the site).
There are many more conventions – study established search engines in some detail to figure out which ones will be important to you when you design your search. However much you might feel like it's bad to just copy the search engines, they all copy each other anyway, and the reason they do it is that consistent interfaces are a big aid to usability.
Learning from PageRank.
Google’s idea of ranking pages by link popularity (that is, the number of pages that link to them using a keyword) is a good one, but lots of people seem to have forgotten it. Why? Well, because it doesn't work all that well for indexing the whole web, where it's easily gamed. When you're doing searches across your own website, though, where you control the content and no-one can try to distort the link rankings, it's a technique that works much better than counting the number of times keywords occur in each page. Of course, this assumes that your site links to other parts of itself well (it should, for the sake of rankings in the real search engines) and that your site is reasonably large.
Installing Search Software.
At this point, you'd have a big project on your hands if you decided to write your site's search engine yourself. It's much better to take an existing, open source solution written in whatever language your site runs on, and then adapt it to your own purposes in whatever way you need to. Good places to look for open source site search software are sourceforge.net and freshmeat.net, which both allow you to search by language and sort results by the popularity of the software.
Finally, if you don't want to go to too much trouble with your site search, you might consider outsourcing it altogether: that is, making your search box send the user to the search results for your site at an external search engine. More and more sites with outdated or useless search engines are starting to do this, realising that they're putting off users by forcing them to use bad search engines.
If you want to offer a Google search for your website, go here: http://www.google.com/services/free.html. Yahoo and MSN offer similar services, but they're nowhere near as popular. You should really only consider outsourcing your search as a last result, as it looks amateurish unless you pay to customise it with your logo and design, and it may also have the unintentional result of sending your visitors back out onto the web instead of keeping them on your site. Still, if you really don't have the time to spare to make a good search, it can be a useful alternative to have.