Recently I oversaw an internal development effort to integrate Vivisimo's Velocity search engine into Microsoft SharePoint and JBoss Portal. CapTech has experience with several search products and many have the same integration challenges. We found that Velocity's architecture simplifies or eliminates many of these challenges. Here are just a few great features that we leveraged in this project.

Simplified Integration
Velocity supports user impersonation. Using a trusted system account, the backend system can issue a search command to Velocity on behalf of the portal user. Velocity will then apply that user's view permissions to the search results. Other systems might require the user's password or the search request to originate from the user's browser (via SSO or NTLM) instead of the backend. This can complicate the way searches are executed in your portal. Using impersonation, the Velocity search is simply a service call.

Security Approaches
Velocity integrates with Active Directory or LDAP so that the user's list of roles does not need to be sent in the search query. Also, Velocity can index Access Control Lists (ACLs) for content. Velocity uses this information to filter the results to what the user has permission to see. This is called early binding. Velocity can also be configured for late binding, similar to how Google Search Appliance works. In this case, the search engine will verify the user has view permissions on the results at the time the search is made. Choosing either approach is largely based on the products you are using (portal, CMS, etc.), your integration approach, and security requirements.

Faceted Searching
Velocity supports faceted search and facet counts. Typically, facet names are only controlled by the system administrator. In addition, Velocity provides "clusters" which are like automated facets that let you narrow your results based on the current context of your search. This distinctly powerful feature can drastically boost search success rates.

Powerful Use of Metadata
While other products only support date and relevance score, search results can be sorted on all metadata in Velocity. While it seems awkward to sort on anything other than relevance, we found that our clients want to sort on document title, department name, or other metadata. Furthermore, Velocity also makes use of tagging. Both content authors and consumers (if you wish) are able to dynamically add tags to search results to improve the experience for future users looking for the same data. What's also interesting is Velocity can index user content so that a search can return user information on thought leaders or SMEs within your organization, enabling collaboration features from the search interface.

Out of the Box Components
Velocity provides a number of connectors for indexing content from several portals and content management systems. Also, out of the box WebParts for SharePoint and portlets for various java-based portals are provided. If these components don't meet your needs, Velocity provides an advanced API for managing and searching indexed content.

Conclusion
Velocity proves to be a very powerful search platform. We found the simplified integration, security architecture, and faceted searching invaluable for content-rich portals. Also, the product's flexibility opens the door for innovative search applications. For example, Vivisimo has already demonstrated the product acting as a business intelligence mashup tool. The effectiveness of enterprise search is a critical aspect for the success of a portal and we are excited about what Velocity brings to the table. Look for future posts on Vivisimo Velocity.