An Elasticsearch integration for Elgg
This plugin adds full-text search capabilities to your Elgg installation, allowing you to search through entities and annotations (in ELGG 1.8)., (*1)
Installation and configuration
-
Install the plugin (and it's dependencies) by running:, (*2)
composer require pleio/elasticsearch
-
Add the following configuration to engine/settings.php:, (*3)
$CONFIG->elasticsearch = array(
'hosts' => array(
'127.0.0.1'
)
);
$CONFIG->elasticsearch_index = 'pleio-dev';
-
Activate the plugin through the Elgg admin panel., (*4)
-
Create the index and mappings in Elasticsearch by running:, (*5)
php console.php es:index:reset
This command will (re-)create the index. All existing content attached to the Elasticsearch will be deleted. From now on all entity CRUD actions will automatically be synced with Elasticsearch., (*6)
Bulk synchronisation
The tool comes with a tool to synchronize all existing content with Elasticsearch. Run, (*7)
php console.php es:sync:all
to start a bulk synchronisation., (*8)
File contents indexing
It is also possible to use this tool in conjunction with PleioAsyncTaskHandler and tika-server to search through ElggFile contents., (*9)
-
Download and run the tika-server:, (*10)
wget http://www.apache.org/dyn/closer.cgi/tika/tika-server-1.15.jar
java -jar tika-server-1.15.jar
-
Add the following configuration to engine/settings.php:, (*11)
$CONFIG->tika_server = ["localhost", 9998];
-
Make sure the PleioAsyncTaskHandler is running by:, (*12)
php console.php async:taskhandler
Now when files are added or updated, the contents are indexed automatically., (*13)