forked from GNUsocial/gnu-social
53c86c43c4
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. |
||
---|---|---|
.. | ||
scripts | ||
README | ||
sphinx.conf.sample | ||
sphinxsearch.php | ||
SphinxSearchPlugin.php |
You can get a significant boost in performance using Sphinx Search instead of your database server to search for users and notices. <http://sphinxsearch.com/>. Configuration ------------- In StatusNet's configuration, you can adjust the following settings under 'sphinx': enabled: Set to true to enable. Default false. server: a string with the hostname of the sphinx server. port: an integer with the port number of the sphinx server. Requirements ------------ To use a Sphinx server to search users and notices, you also need to install, compile and enable the sphinx pecl extension for php on the client side, which itself depends on the sphinx development files. "pecl install sphinx" should take care of that. Add "extension=sphinx.so" to your php.ini and reload apache to enable it. You can update your MySQL or Postgresql databases to drop their fulltext search indexes, since they're now provided by sphinx. You will also need a Sphinx server to serve the search queries. On the sphinx server side, a script reads the main database and build the keyword index. A cron job reads the database and keeps the sphinx indexes up to date. scripts/sphinx-cron.sh should be called by cron every 5 minutes, for example. scripts/sphinx.sh is an init.d script to start and stop the sphinx search daemon. Server configuration -------------------- scripts/gen_config.php can generate a sphinx.conf file listing MySQL data sources for your databases. You may need to tweak paths afterwards. $ plugins/SphinxSearch/scripts/gen_config.php > sphinx.conf If you wish, you can build a full config yourself based on sphinx.conf.sample