Sebastian's Pamphlets

If you've read my articles somewhere on the Internet, expect something different here.

MOVED TO SEBASTIANS-PAMPHLETS.COM

Please click the link above to read actual posts, this archive will disappear soon!

Stay tuned...

Tuesday, June 12, 2007

Another way to implement a site search facility

Providing kick ass navigation and product search is the key to success for e-commerce sites. Conversion rates highly depend on user friendly UIs which enable the shopper to find the desired product with a context sensitive search in combination with few drill-down clicks on navigational links. Unfortunately, the build-in search as well as navigation and site structure of most shopping carts simply sucks. Every online store is different, hence findability must be customizable and very flexible.

I've seen online shops crawling their product pages with a 3rd party search engine script because the shopping cart's search functionality was totally and utterly useless. Others put fantastic efforts in self made search facilities which perfectly implement real life relations beyond the limitations of the e-commerce software's data model, but need code tweaks for each and every featured product, specials, virtual shops assembling a particular niche from several product lines or whatever. Bugger.

Today I stumbled upon a very interesting approach which could become the holy grail for store owners suffering from crappy software. Progress invited me to discuss a product they've bought recently --EasyAsk-- from a search geek's perspective. Long story short, I was impressed. Without digging deep into the technology or reviewing implementations for weaknesses I think the idea behind that tool is promising.

Unfortunately, the EasyAsk Web site doesn't provide solid technical and architectural information (I admit that I may have missed the tidbits within the promotional chatter), hence I try to explain it from what I've gathered today. Progress EasyAsk is a natural language interface connecting users to data sources. Users are shoppers, and staff. Data sources are (relational) databases, or data access layers (that is a logical tier providing a standardized interface to different data pools like all sorts of databases, (Web) services, an enterprise service bus, flat files, XML documents and whatever).

The shopper can submit natural language queries like "yellow XS tops under 30 bucks". The SRP is a page listing tops and similar garments under 30.00$, size XS, illustrated with thumbnails of pics of yellow tops and bustiers, linked to the product pages. If yellow tops in XS are sold out, EasyAsk recommends beige tops instead of delivering a sorry-page. Now when a search query is submitted from a page listing suits, a search for "black leather belts" lists black leather belts for men. If the result set is too large and exceeds the limitations of one page, EasyAsk delivers drill-down lists of tags, categories and synonyms until the result set is viewable on one page. The context (category/tag tree) changes with each click and can be visualized for example as bread crumb nav link.

Technically spoken, EasyAsk does not deal with the content presentation layer itself. It returns XML which can be used to create a completely new page with a POST/GET request, or it gets invoked as AJAX request whose response just alters DOM objects to visualize the search results (way faster but not exactly search engine friendly - that's not a big deal because SERPs shouldn't be crawlable at all). Performance is not an issue from what I've seen. EasyAsk caches everything so that the server doesn't need to bother the hard disk. All points of failure (WRT performance issues) belong to the implementation, thus developing a well thought out software architecture is a must-have.

Well, that's neat, but where's the USP? EasyAsk comes with a natural language (search) driven admin interface too. That means that product managers can define and retrieve everything (attributes, synonyms, relations, specials, price ranges, groupings ...) using natural language. "Gimme gross sales of leather belts for men II/2007 compared to 2006" delivers a statistic and "top is a synonym for bustier and the other way round" creates a relation. The admin interface runs in the Web browser, definitions can be submitted via forms and all admin functions come with previews. Really neat. That reduces the workload of the IT dept. WRT ad-hoc queries as well as for lots of structural change requests, and saves maintenance costs (Web design / Web development).

I've spotted a few weak points, though. For example in the current version the user has to type in SKUs because there's no selection box. Or meta data are stored in flat files, but that's going to change too. There's no real word stemming, EasyAsk handles singular/plural correctly and interprets "bigger" as "big" or "xx-large" politically correct as "plus", but typos must be collected from the "searches without results" report and defined as synonym. The visualization of concurrent or sequentially applied business rules is just rudimentary on preview pages in the admin interface, so currently it's hard to track down why particular products get downranked respectively highlighted when more than one rule applies. Progress told me that they'll make use of 3rd party tools as well as in house solutions to solve these issues in the near future - the integration of EasyAsk into the Progress landscape has just begun.

The definitions of business language / expected terms used by consumers as well as business rules are painless. EasyAsk has build-in mappings like color codes to common color names and vice versa, understands terms like "best selling" and "overstock", and these definitions are easy to extend to match actual data structures and niche specific everyday language.

Setting up the product needs consultancy (as a consultant I love that!). To get EasyAsk running it must understand the structure of the customer's data sources, respectively the methods provided to fetch data from various structured as well as unstructured sources. Once that's configured, EasyAsk pulls (database) updates on schedule (daily, hourly, minutely or whatever). It caches all information needed to fulfill search requests, but goes back to the data source to fetch real time data when the search query requires knowledge of not (yet) cached details. In the beginning such events must be dealt with, but after a (short) while EasyAsk should run smoothly without requiring much technical interventions (as a consultant I hate that, but the client's IT department will love it).

Full disclosure: Progress didn't pay me for that post. For attending the workshop I got two books ("Enterprise Service Bus" by David A. Chappel and "Getting Started with the SID" by John P. Reilly) and a free meal, travel expenses were not refunded. I did not test the software discussed myself (yet), so perhaps my statements (conclusions) are not accurate.

Labels: , , , ,

Share this post at StumbleUpon
Stumble It!
    Share this post at del.icio.us
Post it to
del.icio.us
 


-->

3 Comments:

  • At Thursday, June 14, 2007, Anonymous Anonymous said…

    This is a useful summary of the EasyAsk features - thanks. Of course there are a bunch of other site search technologies that people should consider if they're looking to replace the bad search that came with their shopping cart. At the Internet Retailer show last week the other site search vendors included SLI Systems (I work for these guys), Mercardo, Endeca, Fast, Celebros, and Nextopia.

     
  • At Thursday, June 14, 2007, Blogger Sebastian said…

    A signed statement would be more creditable, just sign in and provide a name and if you like a link to your employers Web site.

    Of course, I've omitted lots of EasyAsk features, for example I didn't mention the enterprise edition (controllers should love it) and the ISP edition which frees capacities at IT departments because it enables users to submit ad-hoc queries without SQL knowledge. That's a search blog ;)

     
  • At Friday, June 15, 2007, Anonymous Anonymous said…

    Agreed - was just quicker to check the anonymous option.

     

Post a Comment

<< Home