The topic of migrating from one enterprise search platform to another has come up a few times in recent weeks because of the news discussed here. Migrations of any kind can be painful. The new search platform will work differently, in unexpected ways, and it will take a while to fully understand those differences. The new platform will have quirks and issues that you will not uncover until the implementation is underway or even completed.
As I have been discussing my approach to enterprise search migration, it has become very obvious to me how useful it is to separate the presentation layer of your search application from the underlying engine. Most search engines come with their own built-in presentation layer or application. XSL templates, configuration wizards, WYSIWYG designers, drag-and-drop GUIs, portlets, servlets — you name it. Everybody has their own proprietary approach to implementing user interfaces for their search engine. And I don’t blame them — who wants to buy and install a search engine that doesn’t come with a nice user interface for running searches and viewing the results.
Using the presentation layer or application built into the search engine can be appealing. They are designed to work seamlessly with the search engine and can be up and running with very little effort. They usually run on the same infrastructure and require very little additional maintenance. They work perfectly, until you are faced with migrating to a new search engine, or even adding new content to an existing implementation. All of the advantages crumble away.
We have been on a mission to help customers avoid this headache. Last year we entered into a strategic partnership with a company called Twigkit. Twigkit is a commercial application specifically designed to build search interfaces and applications, agnostic of any particular search engine. The Twigkit software can search and display results from over a dozen different search engines, plus numerous structured data sources and third-party services, like Wikipedia, YouTube and Twitter. The software runs as a Java application on infrastructure of your choice, and the presentation pages and search logic are controlled through a simple set of JSP tag libraries and configuration files. Once built, switching all or part of an application from one search engine provider to another can be as simple as editing a configuration file.
Twigkit has analyzed the critical elements of search applications and search results pages and they have designed a comprehensive, modular tag library that lets you mix and match features however you choose. Search boxes, auto-complete, facets with sliders or checkboxes or maps or histograms , and thumbnails. Social features like favorites and bookmarks and comments. A powerful pipeline for chaining together multiple queries in parallel or in series – where one set of search result can provide the input for additional queries to other sources, all on a single page. Post-Processors for normalizing data or federating results from multiple sources. And single-sign-on integration and user session management for secure search applications.
Most importantly, all of these widgets and modules can be configured to match your own HTML and CSS. Twigkit includes several beautiful, responsive designs out of the box to get you started (see examples to the right), but they can easily be modified to match your desired style. The Twigkit library uses themes and additional style directives to precisely control the output of each module. Modules can be organized on the page using grid-like block tags. It is all intuitive, yet fully customizable when necessary.
I have reached the point that I have no interest in building custom user interfaces for search applications. It is a waste of time and energy to reinvent the wheel every time and build from scratch. Even when the search platform contains the latest and greatest WYSIWYG template engine, it is invariably difficult to make it exactly match the customer’s branding and functional requirements. Twigkit fills this gap and provides the best of both worlds – reusable search components and customizable styling, without being dependent on a single search engine or platform.