Skip to content
Aurélien FOUCRET edited this page Mar 22, 2016 · 1 revision

ElasticSearch server configuration

Installing Prerequisites.

First, you will need a Java Runtime Environment (JRE) because Elasticsearch is written in the Java programming language.

You can use the native OpenJDK package for the JRE. This JRE is free, well-supported, and automatically managed through most of installation managers (such as APT, YUM, DNF, etc...).

Use one of the following commands, according to your distribution :

  • Debian/Ubuntu/Other APT based distros :
sudo apt-get install openjdk-8-jre
  • CentOS and others YUM based distros :
su -c "yum install java-1.8.0-openjdk"
  • DNF based distros :
sudo dnf install java-1.8.0-openjdk

Installing ElasticSearch.

You can install ElasticSearch via their official repositories.

ElasticSearch is available for YUM/DNF and APT based distros.

  • Install via APT

If you are on an APT based distro (Ubuntu, Debian, etc...), follow these instructions. If you are using a YUM or DNF based distro (CentOS, Fedora, Redhat, etc...), please refer to the Install via YUM / DNF section.

Download and install the Public Signing Key:

wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

Save the repository definition :

echo "deb http://packages.elastic.co/elasticsearch/2.x/debian stable main" | sudo tee -a /etc/apt/sources.list.d/elasticsearch-2.x.list

Run apt-get update and the repository is ready for use. You can then install ElasticSearch with:

sudo apt-get update && sudo apt-get install elasticsearch
  • Install via YUM / DNF

Download and install the public signing key:

rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch

Add the following in your /etc/yum.repos.d/ directory in a file with a .repo suffix, for example elasticsearch.repo

[elasticsearch-2.x]
name=Elasticsearch repository for 2.x packages
baseurl=https://packages.elastic.co/elasticsearch/2.x/centos
gpgcheck=1
gpgkey=https://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1

And your repository is ready for use. You can install it with:

yum install elasticsearch

Or, for newer versions of Fedora and Redhat:

dnf install elasticsearch

Now you can try to start the ElasticSearch instance (depending on your distro, the install script may have not started it) :

sudo service elasticsearch start

You can then test that your ES instance is started by checking the response of the following command :

curl localhost:9200

This should produce something like the following output :

{
  "name" : "DJ",
  "cluster_name" : "elasticsearch",
  "version" : {
    "number" : "2.2.0",
    "build_hash" : "8ff36d139e16f8720f2947ef62c8167a888992fe",
    "build_timestamp" : "2016-01-27T13:32:39Z",
    "build_snapshot" : false,
    "lucene_version" : "5.4.1"
  },
  "tagline" : "You Know, for Search"
}

Installing required plugins.

You have now to install some plugins that are required by Smile Elastic Suite.

Plugins can be installed with the bin/plugin tool of Elastic Search.

You have to go to your Elastic Search installation directory.

Locate your "Home" directory ( Look for Settings -> Path -> Home in the following command output for value ).

curl "localhost:9200/_nodes/settings?pretty=true"
...
      "settings" : {
        "pidfile" : "/var/run/elasticsearch/elasticsearch.pid",
        "cluster" : {
          "name" : "elasticsearch"
        },
        "path" : {
          "conf" : "/etc/elasticsearch",
          "data" : "/var/lib/elasticsearch",
          "logs" : "/var/log/elasticsearch",
          "home" : "/usr/share/elasticsearch"
        },

...

Goto "Home" directory.

cd /usr/share/elasticsearch

Install Required Plugins

bin/plugin install analysis-phonetic
bin/plugin install analysis-icu

Configure ElasticSearch.

Locate your ElasticSearch configuration file. It is the elasticsearch.yml file located in the conf directory listed by the previous command.

In our example it is : /etc/elasticsearch/elasticsearch.yml.

Let's edit this file and add the following line to it :

script.inline: on
script.indexed: on

You can now start (or restart) your ElasticSearch instance, you are all done !

sudo service elasticsearch restart

Use ElasticSearch as a service.

You can refer to the official documentation to have your ElasticSearch instance running as a service.

Next Step

Once you are done with this and you have a running ElasticSearch instance with all required plugins, you can go to the next step : Install and configure the Magento module.