This project is read-only.

How to Extend Sando

Sando is not only a stand-alone search tool, it is also a search tool framework that allows you to add, modify, and replace certain components of the search process. This page will help you get started creating extensions to Sando.

  1. Choose an extension point (listed below)
  2. Implement the extension point
  3. Deploy the extension point

Available Extension Points


Sando implements the above process model. Note that each diamond in the above diagram represents an extension point that Sando exposes. Details on each extension point are provided below.
  • Parser - In order to parse files Sando uses the Parser component. Extensions include supporting a new language or supporting new program elements.
  • Splitter - Before being indexed, individual identifiers within source code are split into words according to this component. Extensions include replacing or improving the splitting algorithm.
  • Indexer - In order to index program elements Sando must convert them into information retrieval style documents. This extension point allows for control over which fields are indexed with what content for each program element.
  • Query-er - In order to retrieve documents Sando must query the index. Extensions include re-writing the query (e.g., adding synonyms) and weighing certain fields more highly than others.
  • Re-orderer - Once results are returned according to Sando they can be re-ordered according to other criteria prior to presentation.

Implement the Extension Point

In order to implement a given extension point please consult the individual page for that extension point (linked above).

Deploy the Extension Point

After implementing an extension point users must do the following steps to deploy it:
  1. Shutdown Visual Studio
  2. Update Sando's configuration file to register the extension point (details)
  3. Add the .dll file that contains the extension point to the same directory as the configuration file
  4. Restart Visual Studio
  5. Check the log file in the same directory to ensure your extension has been successfully registered

Last edited Jun 19, 2012 at 10:15 PM by davidcshepherd, version 13


No comments yet.