Before installing SphinxSearch, you must install the Sphinx search application.
If you are on a shared hosting account you will not be able to install Sphinx on your own. Feel free to discuss installation with your hosting provider, but without shell and sudo access you will not be able to go any further.
While most Linux servers will include the following packages, these are required for the Sphinx to work:
Once you've confirmed you have these packages, please read through Sphinx's installation instructions. You'll just need to follow steps 2.1 through 2.4. Our instructions below will take care of the rest.
Download the latest version of the plugin from the Apperceptive's SphinxSearch page and unpack it in the main directory of your Movable Type installation. It will install files into the plugins/SphinxSearch/ directory.
Login to Movable Type and navigate to the global plugin settings. Click on "Show Settings" in the menu for SphinxSearch. The values for "Seardhd PID File", "Searchd Host" and "Searchd Port" should be filled in with default values. The Sphinx path will most commonly be "/usr/local/bin", but you should pay attention to where the "indexer" application was placed when you installed the Sphinx application. The full path to your sphinx.conf file can be anywhere in your server's file system. When you generate the sphinx.conf file in the next step, you'll place it here. Click "Save Changes".
After finishing the configuration, navigate back to the SphinxSearch settings and click the "Generate sphinx.conf file from MT settings" link. The file will be generated and you'll be prompted to save the file locally. Place the file on your server in the location you specified in the "Sphinx Config Path" setting.
To confirm that SphinxSearch is working, you'll need to run a few commands via ssh. Before we begin, you need to find out which user is running Movable Type. The best way to do this is to navigate to your mt cgi directory and find out who owns that folder. Then run the following commands:
sudo -u OWNER_OF_MT /path/to/indexer --all --config /PATH/TO/sphinx.conf
This will index all of your content.
sudo -u OWNER_OF_MT /path/to/searchd --config /PATH/TO/sphinx.conf
This will start the search daemon.
If you get no errors and searching works on your site, then Sphinx is all set up.
SphinxSearch is set to index every time run-periodic-tasks runs, which is set to one hour by default in MT. Be sure to check your error logs after the initial setup to make sure you're not getting any errors. If you are, you'll want to confirm that searchd is running and being run by the owner of the MT processes. You can check with the following command:
ps ax | grep searchd
The response should look something like this:
6611 p2 S 0:00.33 searchd --config /var/www/cgi-bin/mte/plugins/SphinxSearch/sphinx.conf

Below are the configuration options for SphinxSearch, which are set at the system level.
Search Excerpt Words: The maximum number of words before and after the search string to include in MTSearchResultExcerpt.
Index Morphology: Allows you to search on similar sounding words or words with similar stems (e.g. cat and cats)
Sphinx Binary Path: The installed path for the sphinx binaries, specifically indexer. If indexer is installed at /usr/local/bin/indexer, the value here should be /usr/local/bin.
Sphinx Config Path: Full path for the sphinx.conf file (e.g., /etc/sphinx/sphinx.conf).
Sphinx File Path: Path to use for all the sphinx files (indexes, pid, logs, etc.)
Searchd Host: Host for server where searhd is located (defaults to localhost)
Searchd Port: Port for server where searchd is located (defaults to 3312)
The plugin will work out of the box with your templates, but to use it's extended you'll need to use some of the additional template tags. First, here is a code sample for pagination, which accounts for all but one of the template tags. There are relevant notes below.
<MTIfMultipleSearchResultsPages><MTSearchResultsPageLoop><MTIfCurrentSearchResultsPage><MTSearchResultsPage> | </MTIfCurrentSearchResultsPage><MTIfNotCurrentSearchResultsPage><a href="<$MTCGIPath$><$MTSearchScript$>?search= »
<MTSearchString>&limit=<$MTSearchResultsLimit$>&offset=<$MTSearchResultsOffset$>&sort_mode=<$MTSearchSortMode$> »
&match_mode=<$MTSearchMatchMode$>"><$MTSearchResultsPage$></a> | </MTElse></MTIfNotCurrentSearchResultsPage></MTSearchResultsPageLoop></MTIfMultipleSearchResultsPages>
MTIfMultipleSearchResultsPages: There is also a MTIfSingleSearchResultsPage tag.
MTSearchResultsLimit: This can be set using the MaxResults configuration directive or directly in the search URL with "limit=n".
MTSearchSortMode: This is passed as a URL parameter and takes values of either "relevance" or "descend".
MTSearchMatchMode: This is passed as a URL parameter and takes values of "any", "all", "phrase", "boolean" (e.g. AND, OR, NOT operators) and "extended" which includes the Boolean syntax plus field, phrase and proximity operators.
MTSearchResultExcerpt: If the search string is in the