Bringing Sphinx search support up to code: broken out to a plugin, now supports multiple sites on a single server.

Upgrade notes:
* Index names have changed from hardcoded 'Identica_people' and 'Identica_notices' to use the database name and actual table names. Must reindex.

New events:
* GetSearchEngine to override default search engine class selection from plugins

New scripts:
* gen_config.php generates a sphinx.conf from database configuration (with theoretical support for status_network table, but it doesn't seem to be cleanly queriable right now without knowing the db setup info for that. Needs generalized support.)
* Replaced old sphinx-indexer.sh and sphinx-cron.sh with index_update.php

Other fixes:
* sphinx.conf.sample better matches our live config, skipping unused stopword list and using a more realistic indexer memory limit

Further notes:
* Probably doesn't work right with PostgreSQL yet; Sphinx can pull from PG but the extraction queries currently look like they use some MySQL-specific functions.
This commit is contained in:
Brion Vibber
2009-11-03 16:57:39 -08:00
parent 1cd6650ae4
commit 53c86c43c4
20 changed files with 539 additions and 173 deletions

View File

@@ -0,0 +1,15 @@
#!/bin/bash
if [[ $1 = "start" ]]
then
echo "Stopping any running daemons..."
/usr/local/bin/searchd --config /usr/local/etc/sphinx.conf --stop 2> /dev/null
echo "Starting sphinx search daemon..."
/usr/local/bin/searchd --config /usr/local/etc/sphinx.conf 2> /dev/null
fi
if [[ $1 = "stop" ]]
then
echo "Stopping sphinx search daemon..."
/usr/local/bin/searchd --config /usr/local/etc/sphinx.conf --stop 2> /dev/null
fi