User Tools

Site Tools


Sidebar

magento_2:elastic_search

For more details see the Elastic Search for Magento 2 extension page.

Guide for Elastic Search for Magento 2

Elastic Search for Magento 2 is an advanced tool to provide your store with optimized search performance and highly relevant search results.

  • Display advanced autocomplete window
  • Use spell corrections
  • Add alternative product names by synonym results
  • Configure full text content search
  • Specify the search types for each product attribute
  • Set promo rules to promote certain products
  • Analyze customers’ activity via Search Analytics dashboard

Before Installing

Please, consider that there are three main entities, which constitutes the extension's work:

  • Elasticsearch engine, which version should be equal to or greater than 5.x (The extension supports Elasticsearch 5.x, 6.x);
You can check the version via curl request, for example:
  • Elasticsearch-php, which is the Elasticsearch library;
Note, that the Elasticsearch-php library and Elasticsearch engine itself are different things. In its composer.json dependencies, the extension has “elasticsearch/elasticsearch”: “>=5.1” specified, which means that 5th version of the PHP-library will be installed via Composer. However, along with that, you have to install Elasticsearch engine as well.
  • Amasty Elastic Search for Magento 2 extension, which is a configurable bridge between Elasticsearch engine and Magento platform.

Installing ElasticSearch engine

Prior to all the extension's settings, please, make sure that Elasticsearch engine is properly installed.
If you are experiencing any difficulties with the Elasticsearch engine installation process, you can get our Elasticsearch installation service.

Elasticsearch is provided in the various packages formats. The most commonly servers work on Debian-based or RPM-based systems.

Install ElasticSearch Engine with Debian Package

Debian Package can be used to install Elasticsearch on any Debian-based system such as Debian and Ubuntu. You can install and run the Elasticsearch Debian package with the following:

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.0.deb
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.0.deb.sha512
shasum -a 512 -c elasticsearch-6.3.0.deb.sha512 
sudo dpkg -i elasticsearch-6.3.0.deb
sudo update-rc.d elasticsearch defaults 95 10
sudo -i service elasticsearch start
For more details on the installation aspects, please, visit the official Elasticsearch documentation.

Install ElasticSearch Engine with RPM

It can be used to install Elasticsearch on any RPM-based system such as OpenSuSE, SLES, Centos, Red Hat, and Oracle Enterprise. The RPM for Elasticsearch v6.3.0 can be downloaded from the website and installed with the following commands:

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.0.rpm
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.0.rpm.sha512
shasum -a 512 -c elasticsearch-6.3.0.rpm.sha512 
sudo rpm --install elasticsearch-6.3.0.rpm
sudo chkconfig --add elasticsearch
sudo -i service elasticsearch start
For more details on the installation aspects, please, visit the official Elasticsearch documentation.

Install ElasticSearch PHP library on Magento 2 Enterprise

The solution is for Magento 2 EE 2.1.X. For 2.2.X and above no additional actions required.

As Magento 2 Enterprise Edition utilizes its own ElasticSearch module, you will need to implement certain modifications before installing the ElasticSearch by Amasty.

Please, replace the line

"elasticsearch/elasticsearch": "~2.0",

to

"elasticsearch/elasticsearch": ">=2.0",

in the following files:

  • /vendor/magento/module-elasticsearch/composer.json
  • /vendor/composer/installed.json

Then, execute the following:

composer clearcache
composer require elasticsearch/elasticsearch ~5.1

Now, the installation process should be completed successfully.


To manage a connection to Elastic Search, go to Admin Panel > Stores > Configuration > Elastic Search > Connection

To enable the extension, in the Search Engine field, select the Amasty ElasticSearch. Alternatively, select MySQL, to disable the extension.

Elasticsearch Server Hostname - Specify a host name or IP address of a machine that runs Elasticsearch. (localhost or 127.0.0.1 by default).Get this value via Magento Cloud.

Elasticsearch Server Port - Set the Elasticsearch web server proxy port. In our example, the port is 9200.Get this value via Magento Cloud.

Elasticsearch Index Prefix - Specify a particular prefix for each store that you employ elastic search for.

I.e. If you use a single Elasticsearch instance for more than one Magento installation (for instance, Staging and Production environments), specify a unique prefix for each installation.

Enable Elasticsearch HTTP Auth - Select Yes, if you have enabled authentication for your Elasticsearch server. Specify a user name and password in the pop-up fields.

Elasticsearch Server Timeout - Set the timeout.

Click Test Connection.

Autocomplete suggestions & Spelling correction

To configure Elastic Search functionality, go to Admin Panel → Stores → Configuration → Elastic Search → Catalog

Wildcard Type - Specify the type of the autocomplete suggestion - the part of a word which will be auto-completed. Three types are available to set:

Enable Wildcard After - Specify a number of symbols, after which an autocomplete suggestion will be applied.

Autocomplete suggestions after 3 symbols.

Enable Spell Correction - Specify a number of symbols, after which a spell correction will be applied.

Spell correction after 4 symbols.

Max Number of Search Results - Specify the maximum number of items in the search results.

Set 0 to use default Magento limitation, which is 10000 items.

Allow Special Characters - Enable a long-tail search. The search will include the hyphens, slashes and any symbols. The feature provides precise results when searching by SKU and MPN (manufacturer part numbers).

  • A sample of the precise long-tail search by SKU.
  • Note that the default search will not return any results for 24-MB04 request as it is based on the default product labels from a database, while the long-tail feature analyzes the keywords by patterns and “fixes” the query, returning the precise search results.

Advanced Query Settings

Add a product attribute

A product attribute in advanced query settings.

To add a product attribute to a search query configuration, please go to Admin Panel > Stores > Attributes > Product > Select a needed product attribute > click a tab Storefront Properties > Enable Use in Search

How to add a product attribute to a search query settings (watch full screen).

Query

Specify the search type preferences for each product attribute:

In case both Wildcard and Spell Correction are set to Yes, only Wildcard search type will be applied as having higher search priority.
Consider, that shoppers don't have to input neither asterisks, nor boolean operators in a search query. The functionality is fully implemented in the search logic.
  • Wildcard search presupposes that shoppers can input a half-finished word, and get a relevant result.
  • Match Mode is how the words in a search query are combined. Shoppers don't have to input AND/OR in a search query. Go to match mode settings.

Product Name attribute with Wildcard vs with Spell Correction

How a search works for a Name attribute with auto-suggestion vs with spell correction (watch full screen)

Match Mode

Think over how would you like the keywords in a search query to be combined for each product attribute.

How it works?

For instance, a customer searches your web store looking for a velvet jacket. As you specify a boolean type for a Product Name attribute:

  1. AND logic will return only results that contain both velvet and jacket
  2. OR logic will return results that contain either velvet or jacket (velvet shoes, denim jacket, etc)
Search results for 'radiant tee' sample
  • with AND logic
  • with OR logic

Indexation Settings

Use Inbox Stopwords - enable this option to apply a default set of stopwords. Specify the necessary language.

See how to manage custom stopwords here.

Use Inbox Stemming - set to Yes and select the language to use stemmed words in search. This feature allows customers to search by the root form of the word. For example, if a customer types “bags”, he will get results with a “bag” single form as well.

This is how the feature works:

Stop words

To keep index small by specifying the list of words to be ignored by search engine, go to Admin Panel → System → Manage Stop Words.

On the grid the list of all stop words is displayed. Easily Edit or Delete each stop word via Action column.

Click Add New Stop Word. Specify a Stop Word and Store View for the word to be applied.

With the extension it is also possible to Import Stop Words.

Synonyms

To build a dictionary of synonyms, navigate to Admin Panel → System → Manage Synonyms.

Click Add New Synonym to input a group of words that will be regarded equally by a search logic. Separate them with commas.

Select a Store View.

You can switch to edit an entry by clicking Select in Action column on the synonyms' grid.

As an alternative, Import a CSV file with synonyms dictionary.

In a CSV file each group of words should be comma separated and placed on a separate line. Click here to download the example.
Have a look at a search by synonyms in action (Watch full screen).

Manage Relevance Rules

To manage boost rules, navigate to Admin Panel → System → Search Page Relevance Rules.

In the Action column (Select drop-down) choose Edit, to edit the existing rules.

Click Add New Rule to specify search and return conditions for a new promo rule.

Specify the name for a relevance rule - input Title. Note, that it is used mainly for admin.

Enabled - Enable or disable a rule with a toggle.

Note, that you might need to re-index your Magento for the changes to take effect.

Website - Specify the particular stores, where you want the rule to be applied. Select from drop-down a needed store.

Activate - Set the dates (from-to), use a pop-up calendar or input directly with numbers.

Product Relevance - There are two modes available to work with relevance rules: Increase by and Decrease by:

  • Select Increase by to boost a certain group of products in the search results;
  • Select Decrease by to lower a product or a certain group of products in the search results;

Specify to what extend you want to boost or lower the products by setting a number from 1 to 100.

Elasticsearch engine uses so called Scores, when it manages the order of the search results' return. The module can increase or decrease these scores selectively by a set number of times.

Conditions - Set the conditions, according to your marketing needs.

  • To boost or lower a certain product in the search results, you can click + button and select SKU from the condition drop-down, and specify its value.
  • To boost or lower a certain group of products, click + button and select a Category from the condition, and specify a pass to the directory, where this group of products belong to. Next, additionally, you can select a Brand, for instance, and specify it. Also, in case this is a new collection, select NEW and set to Yes.

Custom Analyzer

With the extension you can use 3 custom analyzers: Chinese, Japanese and Korean.

Please note that installation of additional plugins is required.
To avoid irrelevant search results after applying one of these analyzers, please make sure you product titles and descriptions do not contain English words.

Chinese Analyzer

To activate this custom analyzer, please install Chinese Analysis Plugin first.

The Chinese analyzer is not customizable, you can still limit the max number of search results and set different match modes for the attributes.

Japanese Analyzer

Click here to install the Japanese (kuromoji) Analysis plugin.

Go to the Indexation Settings tab.

Use Inbox Stopwords - select Yes to apply the default list of words to be ignored by search engine.

Indexation Mode - this setting determines how engine handles compound and unknown words under indexation.

3 modes are available:

Normal - applies the segmentation without decomposition for compounds.

The output sample:

関西国際空港
アブラカダブラ

Search - choose this mode if you want to decompound long words and include the full compound token as a synonym.

The output sample:

関西, 関西国際空港, 国際, 空港
アブラカダブラ

Extended - select this one to output unigrams for unfamiliar words.

The output sample:

関西, 国際, 空港
ア, ブ, ラ, カ, ダ, ブ, ラ
To get more accurate search results, please test the Extended mode efficiently, as it may consider particular cases (e.g. English words) as unfamiliar.

Use Reading Form - choose the algorithm to replace words with their reading forms in either katakana or romaji set of characters.

Find out more about Japanese Analyzer modes here.

Korean Analyzer

Download Korean Analysis plugin here.

To customize the analyzer, go to the Indexation Settings tab.

Indexation Mode - this setting determines how engine handles compound and unknown words under indexation.

3 modes are available:

None - the extension do not apply decomposition for compound words.

The output sample:

가거도항
가곡역

Discard - this mode applies decomposition of compounds and discarding the original form.

The output sample:

가곡역 => 가곡, 역

Mixed - applies decomposition of compounds, but keeps the original form.

The output sample:

가곡역 => 가곡역, 가곡, 역

Use Reading Form - enable to rewrite words written in Hanja to their Hangul form.

Find out more about Korean Analyzer modes here.

Go to Admin Panel → Stores → Configuration → Advanced Search, to configure the advanced search features.

Expand the General tab.

General Settings

Popup width (px) - indicate the width of the autocomplete popup window to make it fit in with other page elements. Recommended value for horizontal view is 900. To get vertical view, please enter 700 and lower.

Min characters - specify the minimal number of characters that customers should type in to trigger the search process. By default, the number is three.

Enable Redirect from 404 to Search Results - if the option is enabled, customer will be redirected to the store search results of the broken URL text instead of the '404 Not Found' page. Custom URL Key for Default Search Results Page - enable to set SEO-friendly short URLs. URL will look 'search/yellow' instead of 'catalogsearch/results/q=yellow'.

Search Results Page URL Key - specify the URL alias for the search results' page.Please do not use 'catalogsearch' as URL Key value.

Enable Tabs on the Search Result Page - set to Yes to enable the tabs that sort search results by Category, CMS, and Landing on the search results page.

Enable Indexation for Autocomplete popup - Set 'Yes' to speed up autocomplete popup performance. Please note, the reindex will take longer. This feature comes with Amasty Elastic Search extension only.

A front-end sample of tabs:

Search Attributes

Include any available product attributes in search algorithm. For each attribute, you can set a priority (weight).

Click Add to create a new attribute. Set its Weight from 1 to 10 - select from a drop-down. Use the bin icon in the Action column to delete attributes in one click.

If there is a color attribute with weight 10 and description attribute with weight 5, and the query is red, search results will be more visually relevant, because the algorithm will choose color attribute prior to the words in description.

Products

Expand this tab to configure products display in a popup window.

Enabled - set to Yes to enable search in products and display search results in the autocomplete popup.

Title - customize the title for the products block.

Position - specify products block position in the popup. This setting is ignored for the horizontal popup window.

Max Results - set the max number of displayed results.

Name Length - indicate the max number of characters of a product name that will be displayed in a popup window.

Short Description Length - set the number of characters for a product short description to be shown in a search window.

Show Reviews - enable reviews display in the autocomplete popup to help customers make the purchase decision much faster.

Enable 'Add to Cart' button - set to Yes to show Add to cart button in the popup to let customers purchase necessary products right away.

Redirect to Product Page - enable this option to redirect in case there is only one search result available. Show 'Out of Stock' Products Last - enable a feature to place the out-of-stock items last in the search results.

To make this feature works properly with out-of-stock items being displayed correctly, please make sure that out-of-stock items' visibility is enabled.
  • Go to Admin Panel > Stores > Configuration > Catalog > Inventory > Stock Options.
  • Navigate to a Display Out of Stock Products field > Uncheck Use system value and set to Yes.
Out-of-stock items displayed last in the search results, a sample.

Enabled - enable the display of the Popular Searches block.

Show on First Click - set the option to Yes to let customers see the Popular Searches block in the autocomplete popup once they click on the quick search field.

Title - specify the title of the block.

Position - set the position for Popular searches block.

Max Results - set the maximal number of popular search results that will be displayed in the search autocomplete popup.

A sample

Recent Searches

Enabled - select Yes to display the Recent Searches block.

Show on First Click - set the option to Yes to let customers see the Recent Searches block in the autocomplete popup once they click on the quick search field.

Specify the Title, Position and Max Results to be displayed.

Display Recent Searches in a pop-up

Blog

Enabled - set to Yes to enable search by blog pages and to display a blog section in the search window popup to help store visitors find the required content throughout your corporate blog.

Allows to search by blog pages created with Amasty Blog extension.

Title - input a name for the section in the search popup, where the blog results will be displayed.

Also specify the Position, Max Results.

Set Content Heading Length and Content Length to be displayed to make your search autocomplete window look informative and clear.

Brands

Enable to display a Brand section in the search window popup.

The option allows to search by brand pages created with Amasty Improved Layered Navigation and Shop by Brand extensions.

Specify the Title, Position, Max Results, Content Heading Length and Content Length for Brands block.

A brand sample section in the search pop-up:

Categories

Enable the option to let the extension search among category attributes and display the results in the autocomplete popup.

Specify Categories block Title, Position and the max number of displayed Results.

Name Length - indicate the number of characters of a category title that will be displayed in a popup window.

Description Length - set the number of characters for a product short description to be shown.

Display Full Category Path - set to Yes to show full path to the results displayed in the popup.

When mouse hover over a category link, the directory levels are displayed.

СMS Pages

Enable search on CMS pages to provide customers with detailed search results.

Specify the Title, Position and the Max Results.

Also set the maximal number of characters for Content Heading and Content that will be shown.

Landing Pages

Enable search landing pages in the popup, specify the Title, Position and the Max Results. Set the maximal number of characters for Content Heading and Content that will be shown is the search popup.

Allows to search by landing pages created with Amasty Landing Pages extension.
Search Landing Pages

To display Landing Pages instead of the search results page, go to Admin Panel > Marketing > SEO & Search > Search Terms > Press Add New Search Term.

  • Input expected Search Query;
  • Specify the Store;
  • Redirect URL - input the URL of the landing page.

Custom Layout

Enable this option to customize popup design.

Set colors for a Border, Hover, Highlight, Background, Text and Hover Text using convenient color picker tool.

See custom layout example:

Analytical Dashboard

The Advanced Search extension allows to maximize profits by analyzing visitors' searching activity and the data gained.

To see the Search Analytics dashboards, go to Admin Panel → Reports → Search Analytics.

Here you can see the next values: total searches, unique searches, the number of users and users’ engagement. The Engagement statistics includes the page jumps to Brands, Categories, Blog, CMS & Landing pages.

Easily check customers’ demand in the Most Wanted Search Terms and Recent Activity blocks.

To see more details on Most Wanted Search Terms, go to Admin Panel → Reports → Most Wanted.

To see more details on customers' Recent Activities, go to Admin Panel → Reports → Recent Activity.

Index Management

To configure the indexing of your catalog, go to System → Tools → Index Management

Cron Tasks List

Magento 2 Elastic Search extension is preintegrated with Cron Tasks List to provide store owners with an opportunity to track and manage all cron tasks running in the website background.

To view all scheduled and executed cron tasks, go to System → Tools → Cron Schedule List

Run all cron tasks and generate their schedule by clicking the ‘Run Cron’ button. Also you can delete separate tasks in bulk, apply filtering and sorting options when it is needed.

NOINDEX, FOLLOW

To prevent search engines (Google, Bing, Yahoo, etc.) from needlessly indexing Magento catalog search results page(s) and advanced search results page(s) we added the code to app/design/frontend/YOUR_PACKAGE/YOUR_THEME/layout/local.xml.

  • If this file does not yet exist in your custom theme you can create it and Magento will automatically include it.
  • If this file already exists in your custom theme then copy everything except the first line XML declaration and elements into your copy of local.xml.

Find out how to install the Elastic Search extension for Magento 2 via Composer.

Rate the user guide
 stars  from 0 votes (Details)
magento_2/elastic_search.txt · Last modified: 2019/09/02 07:52 by tihomirova