Making 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... http://www.example.com/articles/123
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.
Outsourcing Search
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.