Skip to content

ServerConfig 2.x

Aurélien FOUCRET edited this page Feb 2, 2018 · 3 revisions

ElasticSearch 2.x server configuration

⚠️ ElasticSearch 5.x by ElasticSuite is not supported yet. We are working on it but in order to maintains Enterprise Edition compatibility we need to works with Magento on this one.

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.

Clone this wiki locally