Exolution uses Elasticsearch for indexing. Elasticsearch can be installed on any machine on the network. Exolution will work with an existing instance of Elasticsearch 6.*, 7.* and 8.*. Skip this section if you plan to use an existing instance of Elasticsearch.
Install Elasticsearch
- Download Elasticsearch 8.11.1, and extract it to the root of a drive. The Elasticsearch indexes will be created under \elasticsearch-8.11.1\data\ directory, so make sure the Elasticsearch install drive has enough space to store indexes.
- Open a command prompt with administrative privilege and go to \elasticsearch-8.11.1\bin.
- Run the command elasticsearch-service.bat install. This will install Elasticsearch as a Windows service.
- Find the Windows service Elasticsearch 8.11.1 (elasticsearch-service-x64) and open properties.
a. Make Elasticsearch service Startup Type automatic.
b. On the Recovery tab change values of First Failure, Second Failure, and Subsequent Failures to Restart the Service
- To configure Elasticsearch password, run the command elasticseach-reset-password -u elastic
- Type “y” to confirm you want to reset-password
- Copy password value, it will be required to configure Exolution
- Start Elasticsearch service
- To check Elasticsearch is running and accessible, try to browse the following URL http://elastic:REPLACE_WITH_ELASTICSEARCH_PASSWORD@localhost:9200
Configure Elasticsearch
If the Elasticsearch service is installed on a machine other than the Exolution server then configure Elasticsearch to make it accessible to Exolution Server by following the steps below. If Elasticsearch is installed on the Exolution Server, then skip the Configure Elasticsearch section.
- Open the file \elasticsearch-8.11.1\config\elasticsearch.yml in a text file editor. The Notepad may not show the formatting properly, so try using a different text file editor.
- Add the following lines at the end of elasticsearch.yml
indices.id_field_data.enabled: true
search.max_buckets: 1000000 - Save and close elasticsearch.yml
- Restart Elasticsearch service
Configure Elasticsearch disk space
By default, Elasticsearch makes all the indexes read-only when the total free space on the Elasticsearch index directory falls below 15% of the total drive size. Once the indexes become read-only, they need to update one-by-one. In order to change the threshold, place the following code at the end of the Elasticsearch configuration file elasticsearch.yml
#---------------------------------Disk-------------------------------------------
#You cannot mix the usage of percentage values and byte values within these settings.
#Either all are set to percentage values, or all are set to byte values.
#Elasticsearch will not allocate shards to nodes that have less than 10gb disk space available
cluster.routing.allocation.disk.watermark.low: 10gb
#Elasticsearch will attempt to relocate shards away from a node (to another node if there is any) whose disk space is below 5gb
cluster.routing.allocation.disk.watermark.high: 5gb
#Elasticsearch enforces a read-only index block (index.blocks.read_only_allow_delete) on every index
#that has one or more shards allocated on the node that has at least one disk space below the flood stage
cluster.routing.allocation.disk.watermark.flood_stage: 2gb
Check Elasticsearch
Browse the following URL on the computer where Elasticsearch is installed to check that Elasticsearch is running
http://elastic:REPLACE_WITH_ELASTICSEARCH_PASSWORD@localhost:9200
If text like the below displays, then Elasticsearch is running.