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.
46 lines
1.6 KiB
Plaintext
46 lines
1.6 KiB
Plaintext
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
|