Contextual enterprise search

In the previous entry, I talked about information being the food that IT serves to the rest of the organization. One way to present information in a more timely and useful manner is through what I have dubbed contextual enterprise search. Enterprise searching is using search engine technology within an organization's documents, databases, and e-mail. For example, if an individual is working on a licensing agreement with Acme Corporation, that person can find all information within the organization that discusses Acme Corporation in a manner that is similar to searching for Acme Corporation on Google.

As you can imagine, in the traditional web searching sense of using enterprise search, the user has to make an active effort to find information. The user is forced to open a browser window or start an application and then must perform the search based on whatever keywords they want to use. In contextual search, the search results are presented to the user based on whatever document or information they are editing or viewing.

An important issue to examine is the identification of what context to use to perform the search. One method might be to do a count of each word within a document and doing a search based on the top few words. Another method would be to define certain fields within an application to use for contextual searches - using company name like in the earlier example with Acme. A final possibility would be to allow a user to define their own fields or keywords within a record to use as metadata that can then be utilized for contextual enterprise searching.

Depending on the type of information your organization has and how it is stored, there are different technical solutions to implementing a contextual enterprise searching system. Since in my organization, the primary area to use this is with our web-based business management system, I have been looking at combining Google Desktop for the enterprise search and the Firefox extension called Greasemonkey for the interface and contextualization. When our business management system shows information on a given technology invention, along side of it will be shown documents that the user has access to that are somehow related to that invention.

Greasemonkey is an extension that enables the user to add JavaScript on top of the pages that they view. You could use Greasemonkey to allow you to save YouTube videos to your hard drive or to let you collapse and expand threads on Slashdot discussions. The drawback to Greasemonkey is that the deployment model is not very strong making installation on a large number of machines perhaps difficult. There is not an easy way that I have found yet to roll out Greasemonkey scripts to lots of users or to manage the scripts once installed. There is an obfuscated Greasemonkey scripts directory in a user's Firefox profile, but there are no tools to manage them enterprise-wide. If I come up with a solution to this, I will definitely post something.

Google Desktop is a little bit easier of an application to administrate. Included in the Enterprise Google tools is a version with documentation for rolling out and managing Google Desktop via Microsoft Active Directory. One important thing to note is that if you do not want your data going outside your organization, make sure you tell Google Desktop not to have "Search Across Computers" enabled. Google Desktop can be configured to not only index a user's local files and e-mail, but it can also index networked file shares using the user's credentials.

Contextual enterprise searching is a great way to give users information that they might want as well as giving them information they may not even realize exists. With a few tools, it's possible to give your users contextual enterprise searching that is very powerful.