gnu-social/plugins/SphinxSearch
Diogo Cordeiro 8c0601816f [CORE] Move core plugins to a new modules directory
For reference (raised by rozzin in IRC):

* http://foldoc.org/module
* http://foldoc.org/library
* http://foldoc.org/plugin

As noted by XRevan86, modules are not necessarily non-essential.
As we will keep the modules directory in GS root [therefore, near to
plugins/], it is evidenced the difference between both.

This is a simple yet fundamental structural change. It doesn't change
functionality but makes clearer the way we understand GNU social's
internals.
2019-08-22 03:13:58 +01:00
..
locale [CORE] Move core plugins to a new modules directory 2019-08-22 03:13:58 +01:00
scripts i18n/L10n review, extension credits added. 2010-10-04 00:02:24 +02:00
README Add plugin READMEs 2016-02-08 17:48:37 +00:00
sphinx.conf.sample Bringing Sphinx search support up to code: broken out to a plugin, now supports multiple sites on a single server. 2009-11-10 13:44:40 -08:00
sphinxsearch.php throw exception on sphinx search error 2011-12-30 23:09:17 -08:00
SphinxSearchPlugin.php [VersionBump] 1.19.0, fairly late 2019-06-07 15:02:08 +01:00

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 true.
server: a string with the hostname of the sphinx server. Default localhost
port: an integer with the port number of the sphinx server. Default 3312


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