For most folks, their search engine is a black box. They write the code using either a SQL statement, a Verity search, or perhaps handing it off to Google, and that's it. But this isn't always a good idea. This week I had two examples of this.
The first is at Adobe.com. While a lot of people have talked about the new UI (frankly I don't think I'm qualified to talk about UI, or CSS, or design, you get the picture), I want to talk about their search engine. If you search for ColdFusion, you end up here. In case the results change, here is a screen shot:
Notice that ColdFusion 6 comes before ColdFusion 8. Also notice a Buy Now link for 6, but not 8. I'm not pointing this out as a bad thing for ColdFusion, or as a huge mistake on Adobe's part, but is a great example of how search pages may not return what you want. I searched for Flash and Photoshop. Both of them had the main product page as the first result. Flex's first result was the support center. That's better than showing an old version, but I'd probably want to ensure all my products show the main product page (with a buy link) for the first result.
The second example I have is a client I can't link to - but had a similar issue. They were using Verity for their search, and found that most users would search for their product names using X Y, where their real product was named XY. Verity treated X Y as a phrase, so the results weren't great. My work was to simply do a rewrite based on their main products.
Ok so what's my point? Here are a few things I'd like people to think about (and comment on):
- Outside of basic testing, and formatting, have you actually used your search engine? Have you searched for your products, which, for a business, is critical?
- If your search engine isn't returning what you want, what methods have you done to correct it? For my client it was a simple matter of "munging" the search string a bit. Have others done this? Or have you perhaps modified the result set?
- Lastly, how often do you look over search stats? Do you even keep search stats? Keeping a list of top ten search results is nice - but do you actually test those search results to see what your visitors are seeing?
Their new LiveDocs search stinks as well, when searching for something like the Proxy class in AS3, you get a list of results for other products. No! Just search within the current document, just like the old way! ARGH!!! It's beyond frustrating!
If you have a Google Search Appliance (like I do for internal search, still using Verity for external), they have two features that deal specifically with this issue. The first is called keymatch. This lets you define specific urls to show at the top (above normal search results) for specific terms.
The second feature is Search Biasing, so you can give certain search results greater weight to move to the top.
We work with a lot of legal clients, and they need their site searches super customized. Sometimes they like the results grouped by attorney, practice area, event, etc. Sometimes they like it grouped in chronological order. Sometimes they want partners listed before associates. Sometimes they want certain items NOT to show up at all.
We tend to hand code a lot of our searches. They are not the most efficient as we don't really leverage tools like Verity, but otherwise, I am not sure how we can satisfy the attorneys.
@Rob - Cool. I wonder if Adobe did this, but maybe hasn't kept it updated. That's another concern too - if you do 'hack up' your search, how hard is maintenance?
@Ben - ditto above. Sounds like difficult work.
On the GSA side, it's pretty easy to maintain. Keymatches can be imported/exported, so we just keep them in a spreadsheet for easy of updating, then bulk load them. The rest of the GSA tools are pretty simple to work with.
One other advantage for us is that I can have a non-CF person manage the GSA as it's more user/admin focused with a relatively nice web based admin.
For a client of mine we started tracking every keyword/phrase entered in the search box. Every month the client gets a report and they make Architecture/UI changes accordingly.
Recently Site Search was added in Google Analytics (http://analytics.blogspot.c.... With Site Search, you can now see how people search your site once they are already on it.
@Rob - The Google Search Appliance is very cool, and very flexible. But at a starting price of $30k, that is probably too high for most clients' search needs (at least my usual client base).
@Pragnesh - Thanks for posting that link...I had not heard that Google Analytics now included Site Search. That really opens up some cool new possibilities for me and my customers.
Ray - thanks for pointing this out. I'm going to have it fixed for CF and pass along to other prod teams.
"If your search engine isn't returning what you want, what methods have you done to correct it? For my client it was a simple matter of "munging" the search string a bit. Have others done this? Or have you perhaps modified the result set?"
I would also to know how other people are 'weighting' Verity's search results. We are currently redesigning our site and I would like to include some ability to 'weight' the results in a way that satisfies our internal customers belief that one of their pages should be at the top a search....
Hi Ray, I'm trying to make a searchtool for a website running CF8 and a MySQL5 database. But it's in a shared hosting environment and I only want to index or search in the body of the text of every entry. Help! I've tried Lucene and Verity but I get access denied errors all the time from the hosting provider. Is there a way to build a homegrown search tool - or can you give me some pointers? I have a get-set-go version using Lucene for BlueDragon 6 I built some years ago, but it just doesn't work in CF8 (shared hosting) ;-(
Can you ask your host to provide support for the access denied errors?