Adds an ElasticSearch server to your Chassis box.
The Elasticsearch puppet module no longer supports multiple instances and there is no migration path to the new set up. You may need to back up your database, destroy the machine and recreate for it to provision successfully.
Via config.yaml
:
You can add this repo name under the extensions
section of your config file.
extensions:
chassis/chassis_elasticsearch
Via git:
cd path/to/chassis/extensions
git clone --recursive [email protected]:Chassis/Chassis_Elasticsearch.git chassis_elasticsearch
Then reprovision your machine:
vagrant provision
Once the machine has finished provisioning you can access ElasticSearch at
http://<host>:9200/
or from within the VM at http://localhost:9200/
.
The extension also provides two PHP constants in your local-config.php
:
ELASTICSEARCH_HOST // defaults to localhost
ELASTICSEARCH_PORT // defaults to 9200
We recommend using the Head Chrome Extension for debugging queries and exploring your indexes.
Elasticsearch supports using text files for providing stopwords, synonyms and if using the analysis-kuromoji
plugin a custom user dictionary file for tokenisation.
This extension ensures there is a directory at /usr/share/elasticsearch/config
that is writable by the web server.
To reference files added to that location you can use a relative path with the config/
prefix. For example you could create an analyser using a custom stopwords file in the following way:
{
"analysis": {
"filter": {
"custom_stopwords": {
"type": "stop",
"stopwords_path": "config/stopwords.txt"
}
},
"analyzer": {
"default": {
"type": "custom",
"filter": [
"custom_stopwords"
],
"tokenizer": "standard"
}
}
}
}
Chassis ElasticSearch provides some default options you can override from your config file(s).
elasticsearch:
repo_version: '7'
version: '7.10.2'
plugins:
- 'analysis-icu'
host: '0.0.0.0'
port: 9200
timeout: 60
# You may want to increase the memory limit here if you are indexing images & files.
# Note you may also need to increase the memory limits for the VM and PHP also.
# Value is in Megabytes.
memory: 256
# You can override the default JVM options here as an array. For more information
# see the docs at https://www.elastic.co/guide/en/elasticsearch/reference/master/jvm-options.html
jvm_options:
# Alternative way to configure the memory heap size settings at a more granular level.
- '-Xms256m'
- '-Xmx256m'
If you do increase the memory available to Elasticsearch you should generally ensure the VM itself has double that amount of memory to ensure all extensions and services run smoothly.
The below example gives Elasticsearch 1Gig of memory and increases the VM memory to 2Gig.
elasticsearch:
memory: 1024
virtualbox:
memory: 2048
If you're having trouble with Elasticsearch there are a few common commands you can run inside Vagrant.
- First you need to
vagrant ssh
. - To check the status of Elasticsearch run:
sudo service elasticsearch-es status
. - To stop Elasticsearch run:
sudo service elasticsearch-es stop
- To start Elasticsearch run:
sudo service elasticsearch-es start
Version and plugins are the only ones you'll likely want to change.
License: GPLv3
This extension was made with ❤️ by Human Made