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.
- Choose an extension point (listed below)
- Implement the extension point
- 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:
- Shutdown Visual Studio
- Update Sando's configuration file to register the extension point
- Add the .dll file that contains the extension point to the same directory as the configuration file
- Restart Visual Studio
- Check the log file in the same directory to ensure your extension has been successfully registered