The Elastic Search Ultimate Extension includes Elastic Search, Search Spell-Correction, and Search AutoComplete, giving you a powerful way to search through your store.
First, Please find your extension in My account / My Downloadable Products / View & Download. Then, start with the section titled: Installation. It is best to follow our guide step-by-step to configure the best search results.
Learn about Initial extension's setup:
Here you will find everything you need to set up a better search experience.
First, please find your extension in your account in My Downloadable Products section. Then, start with Installation. It is best to follow our step-by-step guide in order to configure the best search results.
Learn about the initial setup:
In this article you will find two possible ways of our extension's installation.
We recommend this installation method because Composer doesn't allow to overwrite files.
php -f bin/magento module:enable Mirasvit_Core Mirasvit_Search Mirasvit_SearchMysql Mirasvit_SearchElastic Mirasvit_SearchAutocomplete Mirasvit_Misspell Mirasvit_SearchLanding Mirasvit_Report Mirasvit_SearchReport
to enable the extension.php -f bin/magento setup:upgrade
to install the extension.php -f bin/magento cache:clean
to clean the cache.Deploy static view files
rm -rf pub/static/frontend/*; rm -rf pub/static/backend/*;
rm -rf var/view_preprocessed/*
php -f bin/magento setup:static-content:deploy
php -f bin/magento indexer:reindex mst_misspell
You can also install the extension via direct files uploading.
composer require elasticsearch/elasticsearch:~5.1
to install required libraries.php -f bin/magento module:enable Mirasvit_Core Mirasvit_Search Mirasvit_SearchMysql Mirasvit_SearchElastic Mirasvit_SearchElasticNative Mirasvit_SearchAutocomplete Mirasvit_Misspell Mirasvit_SearchLanding Mirasvit_Report Mirasvit_SearchReport
to enable the extension.php -f bin/magento setup:upgrade
to install the extension.php -f bin/magento cache:clean
to clean the cache.Deploy static view files
rm -rf pub/static/frontend/*; rm -rf pub/static/backend/*;
rm -rf var/view_preprocessed/*
php -f bin/magento setup:static-content:deploy
php -f bin/magento indexer:reindex mst_misspell
Here you can quickly navigate across all functionality settings we have. Please use the list below to navigate.
This section covers all topics, necessary for working with indices, and consists of the following subsections:
Search Indexes are the most important part of your search subsystem. The purpose of storing an index is to optimize speed and performance in finding relevant documents for a search query. Without an index, the search engine would scan every document on your store, which would require considerable time and computing power.
This section covers all topics, necessary for working with indexes, and consists of the following subsections:
Our Magento 2 Elasticsearch Extension or Sphinx Extension can combine all indexes, existing in your configuration, to boost search and give your customers the most relevant results. It brings them all to a single grid, located at System -> Search Management -> Search Indexes, from where you can configure them.
Each index, added to this grid, displayes the following properties:
Additional Action column provides common actions, that can be performed directly from grid, such as:
Back to top
To add a new index to Mirasvit Search extension, go to System -> Search Management -> Search Indexes and press Add New Index.
Index record creation are divided into two stages: setting common settings and specific, which depend from their type. Common settings are shown in General Settings subsection:
Press Save and Continue Edit to proceed to index configuration stage.
Properties - type-dependent specific options section. Read more below, or pick a link from type values, described in (2) step.
On installation three indexes will be automatically created and configured: Product, Category and CMS Page.
Back to top
Product Index can be created at System -> Search Management -> Search Indexes grid. Read more here about adding new index.
Specific options of this type will be shown on Properies section of Index edit page:
Back to top
Category Index can be created at System -> Search Management -> Search Indexes grid. Read more here about adding new index.
There's no specific options for this type of index.
Back to top
CMS Page Index can be created at System -> Search Management -> Search Indexes grid. Read more here about adding new index.
There's only one specific option for this type on Properies section of Index edit page:
Back to top
Unlike of other indexes, this one can be created only for specific attribute, which should be displayed as separate section in Search Results.
This attribute should be previously enabled for Advanced Search. It can be done at Stores -> Attributes -> Product grid. Pick up desired attribute, then jump to Storefront Properties subsection and then make them available for search by setting to Yes two options: Use in Search and Visible in Advanced Search.
After saving product you can configure Attribute Index for this attribute at System -> Search Management -> Search Indexes grid. Read more here about adding new index.
Back to top
Wordpress Blog Index can be created at System -> Search Management -> Search Indexes grid. Read more here about adding new index.
Database Connection Name - connection name of the wordpress database.
If WordPress is installed on the same database, the correct value is default
.
'db' => array(
'table_prefix' => '',
'connection' => array(
'default' => array(
'host' => 'localhost',
'dbname' => 'store',
'username' => 'root',
'password' => 'password',
'active' => '1',
),
),
),
If WordPress is installed on the separate database, you need to create a new connection in file app/etc/env.php
.
'db' => [
'table_prefix' => '',
'connection' => [
'default' => [
'host' => 'localhost',
'dbname' => 'dbname',
'username' => 'username',
'password' => 'password',
'active' => '1',
],
'wpconnection' => [
'host' => 'localhost',
'dbname' => 'your_wp_dbname',
'username' => 'username',
'password' => 'password',
'active' => '1',
]
]
],
'resource' => [
'default_setup' => [
'connection' => 'default'
],
'wp_setup' => [
'connection' => 'wpconnection'
]
],
Url Template - the full URL for your posts with dynamical variables.
Typical base urls should look like example below below:
http://example.com/blog/{post_name}.html
http://example.com/blog/?p={ID}
http://example.com/{category_slug}/{post_name}.html
Back to top
Search Indexes are the most important part of your search subsystem. The purpose of storing an index is to optimize speed and performance in finding relevant documents for a search query. Without an index, the search engine would scan every document on your store, which would require considerable time and computing power.
This section covers all topics, necessary for working with indexes, and consists of the following subsections:
Our Magento 2 Elasticsearch Extension or Sphinx Extension can combine all indexes, existing in your configuration, to boost search and give your customers the most relevant results. It brings them all to a single grid, located at System -> Search Management -> Search Indexes, from where you can configure them.
Each index, added to this grid, displayes the following properties:
Additional Action column provides common actions, that can be performed directly from grid, such as:
Back to top
To add a new index to Mirasvit Search extension, go to System -> Search Management -> Search Indexes and press Add New Index.
Index record creation are divided into two stages: setting common settings and specific, which depend from their type. Common settings are shown in General Settings subsection:
Press Save and Continue Edit to proceed to index configuration stage.
Properties - type-dependent specific options section. Read more below, or pick a link from type values, described in (2) step.
On installation three indexes will be automatically created and configured: Product, Category and CMS Page.
Back to top
Product Index can be created at System -> Search Management -> Search Indexes grid. Read more here about adding new index.
Specific options of this type will be shown on Properies section of Index edit page:
Back to top
Category Index can be created at System -> Search Management -> Search Indexes grid. Read more here about adding new index.
There's no specific options for this type of index.
Back to top
CMS Page Index can be created at System -> Search Management -> Search Indexes grid. Read more here about adding new index.
There's only one specific option for this type on Properies section of Index edit page:
Back to top
Unlike of other indexes, this one can be created only for specific attribute, which should be displayed as separate section in Search Results.
This attribute should be previously enabled for Advanced Search. It can be done at Stores -> Attributes -> Product grid. Pick up desired attribute, then jump to Storefront Properties subsection and then make them available for search by setting to Yes two options: Use in Search and Visible in Advanced Search.
After saving product you can configure Attribute Index for this attribute at System -> Search Management -> Search Indexes grid. Read more here about adding new index.
Back to top
Wordpress Blog Index can be created at System -> Search Management -> Search Indexes grid. Read more here about adding new index.
Database Connection Name - connection name of the wordpress database.
If WordPress is installed on the same database, the correct value is default
.
'db' => array(
'table_prefix' => '',
'connection' => array(
'default' => array(
'host' => 'localhost',
'dbname' => 'store',
'username' => 'root',
'password' => 'password',
'active' => '1',
),
),
),
If WordPress is installed on the separate database, you need to create a new connection in file app/etc/env.php
.
'db' => [
'table_prefix' => '',
'connection' => [
'default' => [
'host' => 'localhost',
'dbname' => 'dbname',
'username' => 'username',
'password' => 'password',
'active' => '1',
],
'wpconnection' => [
'host' => 'localhost',
'dbname' => 'your_wp_dbname',
'username' => 'username',
'password' => 'password',
'active' => '1',
]
]
],
'resource' => [
'default_setup' => [
'connection' => 'default'
],
'wp_setup' => [
'connection' => 'wpconnection'
]
],
Url Template - the full URL for your posts with dynamical variables.
Typical base urls should look like example below below:
http://example.com/blog/{post_name}.html
http://example.com/blog/?p={ID}
http://example.com/{category_slug}/{post_name}.html
Back to top
Search Indexes are the most important part of your search subsystem. The purpose of storing an index is to optimize speed and performance in finding relevant documents for a search query. Without an index, the search engine would scan every document on your store, which would require considerable time and computing power.
This section covers all topics, necessary for working with indexes, and consists of the following subsections:
Our Magento 2 Elasticsearch Extension or Sphinx Extension can combine all indexes, existing in your configuration, to boost search and give your customers the most relevant results. It brings them all to a single grid, located at System -> Search Management -> Search Indexes, from where you can configure them.
Each index, added to this grid, displayes the following properties:
Additional Action column provides common actions, that can be performed directly from grid, such as:
Back to top
To add a new index to Mirasvit Search extension, go to System -> Search Management -> Search Indexes and press Add New Index.
Index record creation are divided into two stages: setting common settings and specific, which depend from their type. Common settings are shown in General Settings subsection:
Press Save and Continue Edit to proceed to index configuration stage.
Properties - type-dependent specific options section. Read more below, or pick a link from type values, described in (2) step.
On installation three indexes will be automatically created and configured: Product, Category and CMS Page.
Back to top
Product Index can be created at System -> Search Management -> Search Indexes grid. Read more here about adding new index.
Specific options of this type will be shown on Properies section of Index edit page:
Back to top
Category Index can be created at System -> Search Management -> Search Indexes grid. Read more here about adding new index.
There's no specific options for this type of index.
Back to top
CMS Page Index can be created at System -> Search Management -> Search Indexes grid. Read more here about adding new index.
There's only one specific option for this type on Properies section of Index edit page:
Back to top
Unlike of other indexes, this one can be created only for specific attribute, which should be displayed as separate section in Search Results.
This attribute should be previously enabled for Advanced Search. It can be done at Stores -> Attributes -> Product grid. Pick up desired attribute, then jump to Storefront Properties subsection and then make them available for search by setting to Yes two options: Use in Search and Visible in Advanced Search.
After saving product you can configure Attribute Index for this attribute at System -> Search Management -> Search Indexes grid. Read more here about adding new index.
Back to top
Wordpress Blog Index can be created at System -> Search Management -> Search Indexes grid. Read more here about adding new index.
Database Connection Name - connection name of the wordpress database.
If WordPress is installed on the same database, the correct value is default
.
'db' => array(
'table_prefix' => '',
'connection' => array(
'default' => array(
'host' => 'localhost',
'dbname' => 'store',
'username' => 'root',
'password' => 'password',
'active' => '1',
),
),
),
If WordPress is installed on the separate database, you need to create a new connection in file app/etc/env.php
.
'db' => [
'table_prefix' => '',
'connection' => [
'default' => [
'host' => 'localhost',
'dbname' => 'dbname',
'username' => 'username',
'password' => 'password',
'active' => '1',
],
'wpconnection' => [
'host' => 'localhost',
'dbname' => 'your_wp_dbname',
'username' => 'username',
'password' => 'password',
'active' => '1',
]
]
],
'resource' => [
'default_setup' => [
'connection' => 'default'
],
'wp_setup' => [
'connection' => 'wpconnection'
]
],
Url Template - the full URL for your posts with dynamical variables.
Typical base urls should look like example below below:
http://example.com/blog/{post_name}.html
http://example.com/blog/?p={ID}
http://example.com/{category_slug}/{post_name}.html
Back to top
Search Indexes are the most important part of your search subsystem. The purpose of storing an index is to optimize speed and performance in finding relevant documents for a search query. Without an index, the search engine would scan every document on your store, which would require considerable time and computing power.
This section covers all topics, necessary for working with indexes, and consists of the following subsections:
Our Magento 2 Elasticsearch Extension or Sphinx Extension can combine all indexes, existing in your configuration, to boost search and give your customers the most relevant results. It brings them all to a single grid, located at System -> Search Management -> Search Indexes, from where you can configure them.
Each index, added to this grid, displayes the following properties:
Additional Action column provides common actions, that can be performed directly from grid, such as:
Back to top
To add a new index to Mirasvit Search extension, go to System -> Search Management -> Search Indexes and press Add New Index.
Index record creation are divided into two stages: setting common settings and specific, which depend from their type. Common settings are shown in General Settings subsection:
Press Save and Continue Edit to proceed to index configuration stage.
Properties - type-dependent specific options section. Read more below, or pick a link from type values, described in (2) step.
On installation three indexes will be automatically created and configured: Product, Category and CMS Page.
Back to top
Product Index can be created at System -> Search Management -> Search Indexes grid. Read more here about adding new index.
Specific options of this type will be shown on Properies section of Index edit page:
Back to top
Category Index can be created at System -> Search Management -> Search Indexes grid. Read more here about adding new index.
There's no specific options for this type of index.
Back to top
CMS Page Index can be created at System -> Search Management -> Search Indexes grid. Read more here about adding new index.
There's only one specific option for this type on Properies section of Index edit page:
Back to top
Unlike of other indexes, this one can be created only for specific attribute, which should be displayed as separate section in Search Results.
This attribute should be previously enabled for Advanced Search. It can be done at Stores -> Attributes -> Product grid. Pick up desired attribute, then jump to Storefront Properties subsection and then make them available for search by setting to Yes two options: Use in Search and Visible in Advanced Search.
After saving product you can configure Attribute Index for this attribute at System -> Search Management -> Search Indexes grid. Read more here about adding new index.
Back to top
Wordpress Blog Index can be created at System -> Search Management -> Search Indexes grid. Read more here about adding new index.
Database Connection Name - connection name of the wordpress database.
If WordPress is installed on the same database, the correct value is default
.
'db' => array(
'table_prefix' => '',
'connection' => array(
'default' => array(
'host' => 'localhost',
'dbname' => 'store',
'username' => 'root',
'password' => 'password',
'active' => '1',
),
),
),
If WordPress is installed on the separate database, you need to create a new connection in file app/etc/env.php
.
'db' => [
'table_prefix' => '',
'connection' => [
'default' => [
'host' => 'localhost',
'dbname' => 'dbname',
'username' => 'username',
'password' => 'password',
'active' => '1',
],
'wpconnection' => [
'host' => 'localhost',
'dbname' => 'your_wp_dbname',
'username' => 'username',
'password' => 'password',
'active' => '1',
]
]
],
'resource' => [
'default_setup' => [
'connection' => 'default'
],
'wp_setup' => [
'connection' => 'wpconnection'
]
],
Url Template - the full URL for your posts with dynamical variables.
Typical base urls should look like example below below:
http://example.com/blog/{post_name}.html
http://example.com/blog/?p={ID}
http://example.com/{category_slug}/{post_name}.html
Back to top
Search Indexes are the most important part of your search subsystem. The purpose of storing an index is to optimize speed and performance in finding relevant documents for a search query. Without an index, the search engine would scan every document on your store, which would require considerable time and computing power.
This section covers all topics, necessary for working with indexes, and consists of the following subsections:
Our Magento 2 Elasticsearch Extension or Sphinx Extension can combine all indexes, existing in your configuration, to boost search and give your customers the most relevant results. It brings them all to a single grid, located at System -> Search Management -> Search Indexes, from where you can configure them.
Each index, added to this grid, displayes the following properties:
Additional Action column provides common actions, that can be performed directly from grid, such as:
Back to top
To add a new index to Mirasvit Search extension, go to System -> Search Management -> Search Indexes and press Add New Index.
Index record creation are divided into two stages: setting common settings and specific, which depend from their type. Common settings are shown in General Settings subsection:
Press Save and Continue Edit to proceed to index configuration stage.
Properties - type-dependent specific options section. Read more below, or pick a link from type values, described in (2) step.
On installation three indexes will be automatically created and configured: Product, Category and CMS Page.
Back to top
Product Index can be created at System -> Search Management -> Search Indexes grid. Read more here about adding new index.
Specific options of this type will be shown on Properies section of Index edit page:
Back to top
Category Index can be created at System -> Search Management -> Search Indexes grid. Read more here about adding new index.
There's no specific options for this type of index.
Back to top
CMS Page Index can be created at System -> Search Management -> Search Indexes grid. Read more here about adding new index.
There's only one specific option for this type on Properies section of Index edit page:
Back to top
Unlike of other indexes, this one can be created only for specific attribute, which should be displayed as separate section in Search Results.
This attribute should be previously enabled for Advanced Search. It can be done at Stores -> Attributes -> Product grid. Pick up desired attribute, then jump to Storefront Properties subsection and then make them available for search by setting to Yes two options: Use in Search and Visible in Advanced Search.
After saving product you can configure Attribute Index for this attribute at System -> Search Management -> Search Indexes grid. Read more here about adding new index.
Back to top
Wordpress Blog Index can be created at System -> Search Management -> Search Indexes grid. Read more here about adding new index.
Database Connection Name - connection name of the wordpress database.
If WordPress is installed on the same database, the correct value is default
.
'db' => array(
'table_prefix' => '',
'connection' => array(
'default' => array(
'host' => 'localhost',
'dbname' => 'store',
'username' => 'root',
'password' => 'password',
'active' => '1',
),
),
),
If WordPress is installed on the separate database, you need to create a new connection in file app/etc/env.php
.
'db' => [
'table_prefix' => '',
'connection' => [
'default' => [
'host' => 'localhost',
'dbname' => 'dbname',
'username' => 'username',
'password' => 'password',
'active' => '1',
],
'wpconnection' => [
'host' => 'localhost',
'dbname' => 'your_wp_dbname',
'username' => 'username',
'password' => 'password',
'active' => '1',
]
]
],
'resource' => [
'default_setup' => [
'connection' => 'default'
],
'wp_setup' => [
'connection' => 'wpconnection'
]
],
Url Template - the full URL for your posts with dynamical variables.
Typical base urls should look like example below below:
http://example.com/blog/{post_name}.html
http://example.com/blog/?p={ID}
http://example.com/{category_slug}/{post_name}.html
Back to top
Search Indexes are the most important part of your search subsystem. The purpose of storing an index is to optimize speed and performance in finding relevant documents for a search query. Without an index, the search engine would scan every document on your store, which would require considerable time and computing power.
This section covers all topics, necessary for working with indexes, and consists of the following subsections:
Our Magento 2 Elasticsearch Extension or Sphinx Extension can combine all indexes, existing in your configuration, to boost search and give your customers the most relevant results. It brings them all to a single grid, located at System -> Search Management -> Search Indexes, from where you can configure them.
Each index, added to this grid, displayes the following properties:
Additional Action column provides common actions, that can be performed directly from grid, such as:
Back to top
To add a new index to Mirasvit Search extension, go to System -> Search Management -> Search Indexes and press Add New Index.
Index record creation are divided into two stages: setting common settings and specific, which depend from their type. Common settings are shown in General Settings subsection:
Press Save and Continue Edit to proceed to index configuration stage.
Properties - type-dependent specific options section. Read more below, or pick a link from type values, described in (2) step.
On installation three indexes will be automatically created and configured: Product, Category and CMS Page.
Back to top
Product Index can be created at System -> Search Management -> Search Indexes grid. Read more here about adding new index.
Specific options of this type will be shown on Properies section of Index edit page:
Back to top
Category Index can be created at System -> Search Management -> Search Indexes grid. Read more here about adding new index.
There's no specific options for this type of index.
Back to top
CMS Page Index can be created at System -> Search Management -> Search Indexes grid. Read more here about adding new index.
There's only one specific option for this type on Properies section of Index edit page:
Back to top
Unlike of other indexes, this one can be created only for specific attribute, which should be displayed as separate section in Search Results.
This attribute should be previously enabled for Advanced Search. It can be done at Stores -> Attributes -> Product grid. Pick up desired attribute, then jump to Storefront Properties subsection and then make them available for search by setting to Yes two options: Use in Search and Visible in Advanced Search.
After saving product you can configure Attribute Index for this attribute at System -> Search Management -> Search Indexes grid. Read more here about adding new index.
Back to top
Wordpress Blog Index can be created at System -> Search Management -> Search Indexes grid. Read more here about adding new index.
Database Connection Name - connection name of the wordpress database.
If WordPress is installed on the same database, the correct value is default
.
'db' => array(
'table_prefix' => '',
'connection' => array(
'default' => array(
'host' => 'localhost',
'dbname' => 'store',
'username' => 'root',
'password' => 'password',
'active' => '1',
),
),
),
If WordPress is installed on the separate database, you need to create a new connection in file app/etc/env.php
.
'db' => [
'table_prefix' => '',
'connection' => [
'default' => [
'host' => 'localhost',
'dbname' => 'dbname',
'username' => 'username',
'password' => 'password',
'active' => '1',
],
'wpconnection' => [
'host' => 'localhost',
'dbname' => 'your_wp_dbname',
'username' => 'username',
'password' => 'password',
'active' => '1',
]
]
],
'resource' => [
'default_setup' => [
'connection' => 'default'
],
'wp_setup' => [
'connection' => 'wpconnection'
]
],
Url Template - the full URL for your posts with dynamical variables.
Typical base urls should look like example below below:
http://example.com/blog/{post_name}.html
http://example.com/blog/?p={ID}
http://example.com/{category_slug}/{post_name}.html
Back to top
Search Indexes are the most important part of your search subsystem. The purpose of storing an index is to optimize speed and performance in finding relevant documents for a search query. Without an index, the search engine would scan every document on your store, which would require considerable time and computing power.
This section covers all topics, necessary for working with indexes, and consists of the following subsections:
Our Magento 2 Elasticsearch Extension or Sphinx Extension can combine all indexes, existing in your configuration, to boost search and give your customers the most relevant results. It brings them all to a single grid, located at System -> Search Management -> Search Indexes, from where you can configure them.
Each index, added to this grid, displayes the following properties:
Additional Action column provides common actions, that can be performed directly from grid, such as:
Back to top
To add a new index to Mirasvit Search extension, go to System -> Search Management -> Search Indexes and press Add New Index.
Index record creation are divided into two stages: setting common settings and specific, which depend from their type. Common settings are shown in General Settings subsection:
Press Save and Continue Edit to proceed to index configuration stage.
Properties - type-dependent specific options section. Read more below, or pick a link from type values, described in (2) step.
On installation three indexes will be automatically created and configured: Product, Category and CMS Page.
Back to top
Product Index can be created at System -> Search Management -> Search Indexes grid. Read more here about adding new index.
Specific options of this type will be shown on Properies section of Index edit page:
Back to top
Category Index can be created at System -> Search Management -> Search Indexes grid. Read more here about adding new index.
There's no specific options for this type of index.
Back to top
CMS Page Index can be created at System -> Search Management -> Search Indexes grid. Read more here about adding new index.
There's only one specific option for this type on Properies section of Index edit page:
Back to top
Unlike of other indexes, this one can be created only for specific attribute, which should be displayed as separate section in Search Results.
This attribute should be previously enabled for Advanced Search. It can be done at Stores -> Attributes -> Product grid. Pick up desired attribute, then jump to Storefront Properties subsection and then make them available for search by setting to Yes two options: Use in Search and Visible in Advanced Search.
After saving product you can configure Attribute Index for this attribute at System -> Search Management -> Search Indexes grid. Read more here about adding new index.
Back to top
Wordpress Blog Index can be created at System -> Search Management -> Search Indexes grid. Read more here about adding new index.
Database Connection Name - connection name of the wordpress database.
If WordPress is installed on the same database, the correct value is default
.
'db' => array(
'table_prefix' => '',
'connection' => array(
'default' => array(
'host' => 'localhost',
'dbname' => 'store',
'username' => 'root',
'password' => 'password',
'active' => '1',
),
),
),
If WordPress is installed on the separate database, you need to create a new connection in file app/etc/env.php
.
'db' => [
'table_prefix' => '',
'connection' => [
'default' => [
'host' => 'localhost',
'dbname' => 'dbname',
'username' => 'username',
'password' => 'password',
'active' => '1',
],
'wpconnection' => [
'host' => 'localhost',
'dbname' => 'your_wp_dbname',
'username' => 'username',
'password' => 'password',
'active' => '1',
]
]
],
'resource' => [
'default_setup' => [
'connection' => 'default'
],
'wp_setup' => [
'connection' => 'wpconnection'
]
],
Url Template - the full URL for your posts with dynamical variables.
Typical base urls should look like example below below:
http://example.com/blog/{post_name}.html
http://example.com/blog/?p={ID}
http://example.com/{category_slug}/{post_name}.html
Back to top
Search Indexes are the most important part of your search subsystem. The purpose of storing an index is to optimize speed and performance in finding relevant documents for a search query. Without an index, the search engine would scan every document on your store, which would require considerable time and computing power.
This section covers all topics, necessary for working with indexes, and consists of the following subsections:
Our Magento 2 Elasticsearch Extension or Sphinx Extension can combine all indexes, existing in your configuration, to boost search and give your customers the most relevant results. It brings them all to a single grid, located at System -> Search Management -> Search Indexes, from where you can configure them.
Each index, added to this grid, displayes the following properties:
Additional Action column provides common actions, that can be performed directly from grid, such as:
Back to top
To add a new index to Mirasvit Search extension, go to System -> Search Management -> Search Indexes and press Add New Index.
Index record creation are divided into two stages: setting common settings and specific, which depend from their type. Common settings are shown in General Settings subsection:
Press Save and Continue Edit to proceed to index configuration stage.
Properties - type-dependent specific options section. Read more below, or pick a link from type values, described in (2) step.
On installation three indexes will be automatically created and configured: Product, Category and CMS Page.
Back to top
Product Index can be created at System -> Search Management -> Search Indexes grid. Read more here about adding new index.
Specific options of this type will be shown on Properies section of Index edit page:
Back to top
Category Index can be created at System -> Search Management -> Search Indexes grid. Read more here about adding new index.
There's no specific options for this type of index.
Back to top
CMS Page Index can be created at System -> Search Management -> Search Indexes grid. Read more here about adding new index.
There's only one specific option for this type on Properies section of Index edit page:
Back to top
Unlike of other indexes, this one can be created only for specific attribute, which should be displayed as separate section in Search Results.
This attribute should be previously enabled for Advanced Search. It can be done at Stores -> Attributes -> Product grid. Pick up desired attribute, then jump to Storefront Properties subsection and then make them available for search by setting to Yes two options: Use in Search and Visible in Advanced Search.
After saving product you can configure Attribute Index for this attribute at System -> Search Management -> Search Indexes grid. Read more here about adding new index.
Back to top
Wordpress Blog Index can be created at System -> Search Management -> Search Indexes grid. Read more here about adding new index.
Database Connection Name - connection name of the wordpress database.
If WordPress is installed on the same database, the correct value is default
.
'db' => array(
'table_prefix' => '',
'connection' => array(
'default' => array(
'host' => 'localhost',
'dbname' => 'store',
'username' => 'root',
'password' => 'password',
'active' => '1',
),
),
),
If WordPress is installed on the separate database, you need to create a new connection in file app/etc/env.php
.
'db' => [
'table_prefix' => '',
'connection' => [
'default' => [
'host' => 'localhost',
'dbname' => 'dbname',
'username' => 'username',
'password' => 'password',
'active' => '1',
],
'wpconnection' => [
'host' => 'localhost',
'dbname' => 'your_wp_dbname',
'username' => 'username',
'password' => 'password',
'active' => '1',
]
]
],
'resource' => [
'default_setup' => [
'connection' => 'default'
],
'wp_setup' => [
'connection' => 'wpconnection'
]
],
Url Template - the full URL for your posts with dynamical variables.
Typical base urls should look like example below below:
http://example.com/blog/{post_name}.html
http://example.com/blog/?p={ID}
http://example.com/{category_slug}/{post_name}.html
Back to top
Sometimes it's need to have specific type of Index, which is either not included to our Magento 2 Elasticsearch Extension or Sphinx Extension, or belongs to some third-party extension. In this case custom index can be implemented, using the following instructions:
Clone the example module from repository http://github.com/mirasvit/module-search-extended
git clone <repo_url>
- Clone the example module from the repository;cd module-search-extended/
- Change directory;
git checkout magento23
- Navigate to specific tagname for Magento 2.1-2.3 please use tag magento23.
git checkout magento24
- For Magento 2.4+ please use tag magento24.
git branch
.app/code/Mirasvit/SearchExtended/Index/
and rename subpath Magento/Review/Review/
to the required one ([provider]/[module]/[entity])
app/code/Mirasvit/SearchExtended/Index/[provider]/[module]/[entity]/Index.php
getName()
, getPrimaryKey()
and getIdentifier()
methodsgetAttributes()
methodbuildSearchCollection()
and getSearchableEntities()
app/code/Mirasvit/SearchExtended/etc/di.xml
Adjust layout file app/code/Mirasvit/SearchExtended/view/frontend/layout/catalogsearch_result_index.xml
Rename template name/path and adjust it /app/code/Mirasvit/SearchExtended/view/frontend/templates/index/magento/review/review.phtml
If everything was correct, you can add index of your custom type like any regular index.
/vendor/mirasvit/module-search-autocomplete/src/SearchAutocomplete/Model/Index
folder<Company>/<Extension>/<EntityType>.php
i.e. /vendor/mirasvit/module-search-autocomplete/src/SearchAutocomplete/Model/Index/Ves/Blog/Post.php
/vendor/mirasvit/module-search-autocomplete/src/SearchAutocomplete/etc/di.xml
and add item to type name="Mirasvit\SearchAutocomplete\Model\Index\Pool"
argumentsThis section describes, how you can customize and greatly improve the relevance of your search results by configuring Search Settings.
The most important part is Global Search Configuration. It is located at System -> Search Management -> Settings -> Mirasvit Extensions -> Search, and divided into the following sections:
Our extension allows you to power up search either with default Magento search engine, or with external engine. Option Search Engine selects, which engine should be in charge, and has three possible values:
Third possible value depends from precise extension, that you're using. Mirasvit provides two search applications, that share this option, but support different search engines.
Sphinx Search Ultimate
Sphinx Search Ultimate, as it derives from its name, allows you to use Sphinx Engine on the dedicated server, or on the same server of your store.
Sphinx is an open source full text search server, which features high performance, relevance (aka search quality), and integration simplicity. It's written in C++ and runs on Linux (RedHat, Ubuntu, etc), Windows, MacOS, Solaris, FreeBSD, and a few other systems. It is better used for stores with products quantity below 50k and without need of layered navigation or aggregated search requests. Read more about this engine key features.
Sphinx Search Ultimate adds to the option Global Search Configuration -> Search Engine Configuration -> Search Engine possible value External Sphinx Engine.
External Sphinx Engine also triggers additional options for configuring and managing Sphinx Daemon:
For Sphinx installed on the same server with your Magento store :
For Sphinx installed on the dedicated (remote) server :
Search Engine Configuration section contains Additional Configuration subsection, visible for External Sphinx engine only. It allows you to tune up Sphinx configuration file, and contains the following settings:
[magento_root_directory]/var/sphinx/
location.searchd
Search Daemon. Read more about it here.Elastic Search Ultimate
Magento 2 Elasticsearch Extension, as it derives from its name, allows you to use Elastic Engine on the dedicated server, or on the same server of your store.
Elasticsearch is a distributed, RESTful search and analytics engine capable of solving a growing number of use cases, written on Java so it can be run virtually anywhere. It is best used for stores with more 50k of products and/or support of Layered Navigation. Read more about its key features.
Elastic Search Ultimate adds to the option Global Search Configuration -> Search Engine Configuration -> Search Engine possible value Elasticsearch Engine.
Elasticsearch Engine also triggers additional options for configuring and managing Sphinx Daemon:
127.0.0.1
by default).9200
).It also features two buttons, that allows you to check Elastic Search connection:
Back to Top
mirasvit/module-search-autocomplete
is installed and enabled.Back to Top
This option is useful when you have store-dependant elements in your store. For example, you have products which are visible only in specific storeviews and you wish to allow customers to search simultaneously in all your stores.
Enable Multi-Store Search Results - if you enable this option, search results will be displayed in tabs. Each tab has a number of results for a storeview and corresponds to one of your storeviews. This option triggers an additional sub-option:
Stores - allows you to select, which storeviews should be included in a multi-store search.
Autocomplete always returns results from the current store only. It can not display search results from another storeviews.
Back to Top
This section describes the Long-Tail Search feature, that will allow you to have correct search results for words that contain dashes or other non-alphabetic symbols. You can also replace on-the fly the most typical errors customers can make in complex product names.
For example, we have a product Canon PowerShot SX500 IS
. But customer can request Canon PowerShot SX-500IS
, which default search will not find, because it differs from actual product label.
It's because Magento by default during reindex uses only correct product labels from database, and thus, index will contain only them - making products with complex names "ineligible" for search.
This is where "Long-tail" search come. During reindex and search this feature recognizes the keywords rather by pattern and replaces it either to the empty or some other characters, "correcting" customer's request on-the fly.
In example above the SX500 IS
can be converted to the SX500IS
and during the search, the SX-500IS
also be converted to the SX500IS
by replacing '-' symbol to empty char.
This way search will be able to find products by several combinations of spelling the product's name.
Also, please learn more about configuring Long-Tail Search for your store in our Blog article.
Back to Top
Go to System / Search Management / Settings / Mirasvit Extensions / Search
In the section Search Settings go to the option Long tail.
There you can set up regular expressions to receive required search results.
Match Expression - the regular expression(s) that parses words for further replacing.
Parsing goes for search index, during an indexing process, and goes for search phrases during search.
E.g. /([a-zA-Z0-9]*[\-\/][a-zA-Z0-9]*[\-\/]*[a-zA-Z0-9]*)/
/[\-\/]/
empty value
.Back to Top
Here is some of most useful cases of long-tail search, implemented as corresponding rules.
Automatically remove '-' symbol from product names
Create a rule with the following parameters:
/[a-zA-Z0-9]*-[a-zA-Z0-9]*/
SX500-123
, GLX-11A
, GLZX-VXV
, GLZ/123
, GLZV 123
, CNC-PWR1
/-/
SX500123, GLX11A
, GLZXVXV
, GLZ/123
, GLZV-123-123
, CNCPWR1
Automatically remove '-' and '/' symbols from product names
Create a rule with the following parameters:
/[a-zA-Z0-9]*[ \-\/][a-zA-Z0-9]*/
SX500-123
, GLX-11A
, GLZX-VXV
, GLZ/123
, GLZV 123
, CNC-PWR1
/[ \-\/]/
SX500123
, GLX11A
, GLZXVXV
, GLZ123
, GLZV123
, CNCPWR1
Automatically make solid all products names with separators
Create a rule with the following parameters:
/[a-zA-Z0-9]*[-\/][a-zA-Z0-9]*([-\/][a-zA-Z0-9]*)?/
SX500-123
, GLX-11A
, GLZX-VXV
, GLZ/123
, GLZV-123-123
, CNC-PWR1
/[-\/]/
SX500123
, GLX11A
, GLZXVXV
, GLZ123
, GLZV123123
, CNCPWR1
Automatically fix misspelled product's name
Create a rule with the following parameters:
/([a-zA-Z0-9]*[\- ][a-zA-Z0-9]*[\-][a-zA-Z0-9]*)/
VHC68B-80
, VHC-68B-80
, VHC68B80
/[\- ]/
VHC68B80
Back to Top
Long-Tail expressions, which are used in Search Sphinx for M1 and M2 sliightly differ.
In M1 Search Sphinx you can enter one or more expressions to match, separated by '|' character. In M2 you can not.
Consider the following expression for Search Sphinx for M1:
/[a-zA-Z0-9][ -/][a-zA-Z0-9]([ -/][a-zA-Z0-9]*)?/|/[a-zA-Z]{1,3}[0-9]{1,3}/
/[ -/]/|/([a-zA-Z]{1,3})([0-9]{1,3})/
$1 $2
It actually contains two separate regexps to match: /[a-zA-Z0-9][ -/][a-zA-Z0-9]([ -/][a-zA-Z0-9]*)?/
and /[a-zA-Z]{1,3}[0-9]{1,3}/
with respective separate expressions for replace.
You need either to reformat that expression, so it will match in single expression, or rewrite this rule as a set of two:
First rule
This rule will implement the first part of original M1 expression.
/[a-zA-Z0-9][ -/][a-zA-Z0-9]([ -/][a-zA-Z0-9]*)?/
/[ -/]/
$1 $2
Second rule
This rule will implement the second part of original M1 expression.
/[a-zA-Z]{1,3}[0-9]{1,3}/
/([a-zA-Z]{1,3})([0-9]{1,3})/
$1 $2
Back to Top
Landing search page is special search result page, with a static URL, where customers are redirected on using some search expression.
Let us have a large number of frequently asked (or just a promotional set) models of Samsung phones with black coat. So we create a separate promotional page, say, http://store.com/black-samsung-phone.html
, and bind it to the search phrase "black samsung phone". Then, when customer will request a black Samsung phone, it will be immediately sent to your special page.
Also it supports the following logic .We create a separate promotional page, say, http://store.com/black-samsung-phone.html
, and bind it to the search phrase "black samsung phone". When customer will go to this (specific) URL search results for "black samsung phone" will be immediately built on it.
All such a pages can be managed from System -> Search Management -> Manage Landing Pages grid.
shoes/all
, then full URL would be https://example/shoes/all/
.Synonyms are keywords with the same or similar meaning. All of them are located at System -> Search Management -> Manage Synonyms section.
You can either manually add synonyms, or import them from YAML-formatted file.
On creation page, fill the following fields:
Synonyms - comma-separated list of synonyms. It should contain at least one keyword. Each of them should match the following requirements:
It should have length, greater than 1 character.
Term: clock
Synonyms: watch
Then, if customer issues "clock" query, all watches will be found.
Our extension uses YAML file format for synonyms importing. It should resemble the following format:
-
term: [TERM_1]
synonyms: [SYN_1]
-
term: [TERM_2]
synonyms: [SYN_2]
Name of this file should be equal to your language code in capital case. Codes can be found here, use column 639-1 for that.
EN.yaml
, and it's content should be:
-
term: abiogenesis
synonyms: autogenesis,autogeny,spontaneous generation
-
term: abject
synonyms: low,miserable,scummy,scurvy,resigned,unhopeful
-
term: abjection
synonyms: abasement,degradation
-
term: abjectly
synonyms: resignedly
To import synonyms, perform the following steps:
[magento_root]/
folder.Stopwords are words that have little lexical meaning or ambiguous meaning and are not useful during the search (ex. and, or, the, a, with, etc). Therefore, these words should be removed from search phrases to make them relevant.
You can either manually add stopwords, or import them from YAML-formatted file.
Our extension uses YAML file format for stopwords importing. It should resemble the following format:
[ID_1]:[Stopword_1]
[ID_2]:[Stopword_2]
[ID_3]:[Stopword_3]
Name of this file should be equal to your language code in capital case. Codes can be found here, use column 639-1 for that.
EN.yaml
, and it's content should be:
1:"but"
2:"now"
3:"what"
4:"except"
To import stopwords from such a file, perform the following steps:
[magento_root]/
folder.Score Boost Rules are powerful tool, which allows you to affect relevancy of search results, depending on certain conditions.
When Mirasvit Search extension builds search results, it groups them by indexes' position and their position in System -> Search Management -> Settings -> Search Autocomplete -> Searchable Content. Groups can include Products, Pages, Categories and so on - they can be defined in System -> Search Management -> Search Indexes.
But inside these groups items are listed strictly by their relevance to search query, which calculated for each item separately as item rank. Position in search results list depends from this rank value.
Score Boost Rules allows you to increase or decrease this rank depending on item properties, which allow you to move certain products to the top or botton of list, which is extremely useful for promotion and marketing purposes.
To create a new Score Boost Rule, navigate to System -> Search Management -> Score Boost Rules section and press Add New Rule button.
You need to define the following properties to create a Rule/
Conditions are broken into two parts.
Apply the rule only for following products - allows you to define, which combination of products makes Rule apply.
Both of them use the same pattern, as other rules in Magento 2, and enclosed into logical blocks If ALL of these conditions are TRUE/FALSE
(products meet conditions, when all of them apply) or If ANY of these conditions are TRUE/FALSE
(product shall meet only one of defined conditions).
Here are few useful examples, that demonstrate, how Score Boost Rules work.
Erin Recommends Promo
This example allows you to move products, that were recommended by your editorial board (it is defined by custom attribute Erin Recommends), to the top of search results.
Title: Erin Recommends Promo
Score Factor: Increase by 10
points Initial Score
Apply the rule only for the following products:
Erin Recommends is Yes
Analog Watches to the End
This rule drops to the very bottom all analog watches, when customer search includes "watch" keyword.
Title: Analog Watches to End
Score Factor: Decrease by 2
times Initial Score
Apply the rule only for the following products:
Product Name contains analog
Apply the rule only when the following conditions are met:Search Query contains watch
New Products Promo
This example allows you to uplift promotional products higher than others, but not necessary at the top.
Title: New Products Promo
Score Factor: increase by 5
points Initial Score
Apply the rule only for the following products:
New is Yes
Our extension arranges relevance of found products using Global Settings. But sometimes (for example, for promotional purposes) you need to forcibly move one or more specific products to the top, or vice versa, to the bottom of search results.
It can be done via special option Search Weight, added by our extension to the general settings of the Product Edit Pages.
This weight is the relative position, where product will be placed on search result page. It ranges from 100 (product or category will always appear at the top of search results list) to -100 (product or category will always appear at the bottom of search results list).
This section contains the most common problems, that customer can encounter, and how they can be resolved:
Please, make sure about the following:
Possible cause: too small max_execution_time PHP parameter, which is not enough to complete requests with large number of words.
Solution: there can be two possible solutions.
Increase max_execution_time
parameter either in .htaccess
, or directly in PHP.ini
.
Typically it is enough to decrease the latter parameter, until search will work correctly.
Search Engine Settings
How to Check:
How to Resolve:
Large Quantity of Products (for Sphinx Search Pro and Ultimate extensions)
How to Check:
How to Resolve:
Large Quantity of Products (for Elastic Search Ultimate extension) How to Check:
How to Resolve:
High-load Crontasks
How to Check:
How to Resolve:
Conflicts with other vendor's search extensions
How to Check:
How to Resolve:
Disable this extension and check your search speed: php bin/magento module:disable <module_name>
public function getSocialIconsHtml()
$block = $this->getLayout()->createBlock
, place this code before
$socialIconsBlock = !empty($this->getSocialIconsBlock())?$this->getSocialIconsBlock():'Aheadworks\Blog\Block\Sharethis';
$this->getSocialIconsBlock()
after createBlock
with $socialIconsBlock
$socialIconsBlock = !empty($this->getSocialIconsBlock())?$this->getSocialIconsBlock():'Aheadworks\Blog\Block\Sharethis'; $block = $this->getLayout()->createBlock( $socialIconsBlock,...
If your Sphinx Search Engine installed on same server run the following steps:
1) Whether you have Elastic or Sphinx search Ultimate extension, and use a built-in engine with over 20K products, consider using external search engines. To check your engine settings you may find at System -> Search Management -> Settings -> Mirasvit Extensions -> Search.
2) In case you already use an external search engine, you may check if it has a unique Index Prefix for your store for Elastic Search
or try to stop and restart Sphinx Daemon, then run reindex.
3) You have a Fast Mode enabled at System / Settings / Mirasvit Extensions / Search Autocomplete section: the disadvantages include the increased indexing time of the search index. Otherwise, disable this feature to speed up reindexing time.
4) Additionally disable some options in Product Settings content appearance such as Show Thumbnail, Rating, etc at System / Settings / Mirasvit Extensions / Search Autocomplete section.
5) Make sure there are no duplicate searchable attributes or searchable attributes with search weight = 1 at the Product Index in System -> Search Management -> Search Indexes, otherwise delete those searchable attributes and try reindex.
6) Take a look also on Magento Best Practices for reindexing here.
When happens: We installed on our staging/dev/test site and configured different ports on staging and on live. But the sphinx engine is not connecting on our staging site, keep getting the error message:
Sometimes you can see unwanted, strange search terms in Reports, Hot searches in the autocomplete or in the Related Search Terms and think it is spam or generated by our extension.
Actually, they are the most searched Search Terms in your Magento, more details find in official Magento documentation here. You can clear some of the search terms and it won't appear: go to Marketing > SEO & Search > Search Terms, find the necessary term and delete it, otherwise, you will need to delete them in the database.
Usually, it is a server error. The cause for the problem can be found in the server logs at /var/log/elasticsearch/
directory. First of all, make sure it is configured properly, reset elastic search indicies from the console curl -XDELETE localhost:9200/*
and run re-index bin/magento indexer:reindex catalogsearch_fulltext
.
Also, here is the best Magento practices to resolve elastic search problems.
If you would like to use our Magento 2 Elasticsearch Extension with Elasticsearch Engine, you should install it first.
Elastic Search should be installed differently in different platforms. If you use UNIX or Linux-based system, you can use one of the following commands:
cat /etc/*-release
cat /proc/version
hostnamectl
Depending on your platform, displayed by command above, you need to pick up one of the following procedures:
If you have unusual configuration, or use non-Linux setup, please, refer to official user manual how to install the elastic engine in such case.
After installation is complete, refer to How to check and manage Elastic Search Service subsection.
If you have installed Ubuntu, or other system with Debian package manager, execute the following commands:
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.2.deb
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.2.deb.sha512
shasum -a 512 -c elasticsearch-6.2.2.deb.sha512
sudo dpkg -i elasticsearch-6.2.2.deb
sudo update-rc.d elasticsearch defaults 95 10
sudo -i service elasticsearch start
If you have installed CentOS, or other system with RPM package manager, execute the following commands:
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.1.1.rpm
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.1.1.rpm.sha512
shasum -a 512 -c elasticsearch-6.1.1.rpm.sha512
sudo rpm --install elasticsearch-6.1.1.rpm
sudo chkconfig --add elasticsearch
sudo -i service elasticsearch start
If you have Linux-based system, but not from above distributions, or you just wish to make it run on-demand, use the following commands:
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.2.tar.gz
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.2.tar.gz.sha512
shasum -a 512 -c elasticsearch-6.2.2.tar.gz.sha512
tar -xzf elasticsearch-6.2.2.tar.gz
cd elasticsearch-6.2.2/
./bin/elasticsearch
Once you had installed Elastic Search using one of above procedures, you need to check, whether it actually installed and running. Use this command to get current status:
sudo -i service elasticsearch status
Output should return: elasticsearch is running
You can also visit Stores -> Configuration -> Mirasvit Extensions -> Search -> Search Engine Configuration, then select Elasticsearch Engine at Search Engine option.
You will see a Check status button on displayed subpanel. If Elastic Search is properly installed, you will receive output like below:
name: nyYUXv5
cluster_name: elasticsearch
cluster_uuid: EFGeuFOBSP64M9q0N8ST2Q
version:
number: 6.2.2
build_hash: 10b1edd
build_date: 2018-02-16T19:01:30.685723Z
build_snapshot:
lucene_version: 7.2.1
minimum_wire_compatibility_version: 5.6.0
minimum_index_compatibility_version: 5.0.0
tagline: You Know, for Search
_shards:
total: 0
successful: 0
failed: 0
_all:
primaries:
total:
indices:
{"error":{"root_cause":[{"type":"index_not_found_exception","reason":"no such index","index_uuid":"_na_","index":"*"}],"type":"index_not_found_exception","reason":"no such index","index_uuid":"_na_","index":"*"},"status":404}
You can also send a request to your store's Elastic Search Port (see Connecting Elastic Search Engine). By default it is 9200. If Elastic Search is properly installed, you will receive the following output:
{
"name" : "nyYUXv5",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "EFGeuFOBSP64M9q0N8ST2Q",
"version" : {
"number" : "6.2.2",
"build_hash" : "10b1edd",
"build_date" : "2018-02-16T19:01:30.685723Z",
"build_snapshot" : false,
"lucene_version" : "7.2.1",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}
If at least one of the tests above passed with correct output, you had successfully installed Elastic Search Engine on your store.
If you need to manually restart Elastic Search, use command sudo -i service elasticsearch restart
.
If you need to manually stop Elastic Search, use command sudo -i service elasticsearch stop
.
Magento 2 Elasticsearch Extension can work with Elasticsearch Engine installed on the same server as Magento, as well as on the remote server.
Make sure, that you had installed Elastic Search prior to configuring it.
If you had installed it, and checked, whether it is running, visit System -> Search Management -> Settings -> Search -> Search Engine Configuration subsection.
Set Elastic Search Engine in option Search Engine, and subpanel with connection settings will appear:
<username>:<password>@host.com
Check correctness of configuration by pressing Check Status button. It should return output, as described in How to check and manage Elastic Search Service subsection.
If parameters are incorrect, use Reset button to return to defaults.
The final result should look like below screenshot example:
php bin/magento indexer:reindex catalogsearch_fulltext
from your store's root directory.
If you would like to use our Magento 2 Elasticsearch Extension with Elasticsearch Engine, you should install it first.
Elastic Search should be installed differently in different platforms. If you use UNIX or Linux-based system, you can use one of the following commands:
cat /etc/*-release
cat /proc/version
hostnamectl
Depending on your platform, displayed by command above, you need to pick up one of the following procedures:
If you have unusual configuration, or use non-Linux setup, please, refer to official user manual how to install the elastic engine in such case.
After installation is complete, refer to How to check and manage Elastic Search Service subsection.
If you have installed Ubuntu, or other system with Debian package manager, execute the following commands:
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.2.deb
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.2.deb.sha512
shasum -a 512 -c elasticsearch-6.2.2.deb.sha512
sudo dpkg -i elasticsearch-6.2.2.deb
sudo update-rc.d elasticsearch defaults 95 10
sudo -i service elasticsearch start
If you have installed CentOS, or other system with RPM package manager, execute the following commands:
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.1.1.rpm
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.1.1.rpm.sha512
shasum -a 512 -c elasticsearch-6.1.1.rpm.sha512
sudo rpm --install elasticsearch-6.1.1.rpm
sudo chkconfig --add elasticsearch
sudo -i service elasticsearch start
If you have Linux-based system, but not from above distributions, or you just wish to make it run on-demand, use the following commands:
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.2.tar.gz
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.2.tar.gz.sha512
shasum -a 512 -c elasticsearch-6.2.2.tar.gz.sha512
tar -xzf elasticsearch-6.2.2.tar.gz
cd elasticsearch-6.2.2/
./bin/elasticsearch
Once you had installed Elastic Search using one of above procedures, you need to check, whether it actually installed and running. Use this command to get current status:
sudo -i service elasticsearch status
Output should return: elasticsearch is running
You can also visit Stores -> Configuration -> Mirasvit Extensions -> Search -> Search Engine Configuration, then select Elasticsearch Engine at Search Engine option.
You will see a Check status button on displayed subpanel. If Elastic Search is properly installed, you will receive output like below:
name: nyYUXv5
cluster_name: elasticsearch
cluster_uuid: EFGeuFOBSP64M9q0N8ST2Q
version:
number: 6.2.2
build_hash: 10b1edd
build_date: 2018-02-16T19:01:30.685723Z
build_snapshot:
lucene_version: 7.2.1
minimum_wire_compatibility_version: 5.6.0
minimum_index_compatibility_version: 5.0.0
tagline: You Know, for Search
_shards:
total: 0
successful: 0
failed: 0
_all:
primaries:
total:
indices:
{"error":{"root_cause":[{"type":"index_not_found_exception","reason":"no such index","index_uuid":"_na_","index":"*"}],"type":"index_not_found_exception","reason":"no such index","index_uuid":"_na_","index":"*"},"status":404}
You can also send a request to your store's Elastic Search Port (see Connecting Elastic Search Engine). By default it is 9200. If Elastic Search is properly installed, you will receive the following output:
{
"name" : "nyYUXv5",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "EFGeuFOBSP64M9q0N8ST2Q",
"version" : {
"number" : "6.2.2",
"build_hash" : "10b1edd",
"build_date" : "2018-02-16T19:01:30.685723Z",
"build_snapshot" : false,
"lucene_version" : "7.2.1",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}
If at least one of the tests above passed with correct output, you had successfully installed Elastic Search Engine on your store.
If you need to manually restart Elastic Search, use command sudo -i service elasticsearch restart
.
If you need to manually stop Elastic Search, use command sudo -i service elasticsearch stop
.
All Autocomplete settings are located at System / Settings / Mirasvit Extensions / Search Autocomplete section.
It consists of the following sections:
This section also breaks into lesser subsections, and contains the following options:
.searchautocomplete__item-magento_catalog_product
{
// Your extended styles
}
It will be added to our stylesheet.
Hot searches are the most popular queries, which were requested by customers. If current customer request includes such a query, autocomplete can highlight them and put to the top of drop-down.
Max Number of queries - the maximum allowed number of Hot Searches, which should be displayed on autocomplete drop-down.
This section describes the most common problems, that customers report, and how they can be resolved:
For this navigate to the Stores > Settings > Configuration > Mirasvit Extensions > Developer > CSS Settings and add the css styles below to the Additional CSS Styles field:
@media screen and (max-width: 767px) {
.mst-searchautocomplete__autocomplete {
max-height: 200px;
overflow-y: scroll;
}
}
max-width: 767px
- is the maximum width of the device for which these styles are applied.
For this navigate to the Stores > Settings > Configuration > Sales > Tax > Price Display Settings and switch the option Display Product Prices In Catalog to Excluding Tax - to display price without taxes or any other option to display price including tax.
This issue is possible if some page contains resources (js, css, images) with a 404 error.
To prevent this issue, you can disable a 404 search at System -> Search Management -> Settings -> Mirasvit Extensions -> Search.
Please follow to System -> Search Management -> Settings -> Mirasvit Extensions -> Developer -> CSS Settings tab, set YES at Enable preprocessed CSS, then flush cache and run static content deploy.
Since Native Magento provides search API thus our search extension uses it as well, please follow the official documentation here
Our search extension supports singular and plural search out of the box for the EN, NL, RU locales. If you need to add support for other languages, use lang analyzer technology to customize your Elastic Search for the appropriate language.\ For the Sphinx extension, please use Sphinx engine version with Stemmer (with language specific morphology).
Our extension supports multilanguage stores. To translate it, we have used the same logic as default Magento.
All our translation files are in the "/i18n" folder of each sub-module.
i18n files should be located at:
Create a separate .csv file of your language for our extension. The names of all languages can be found with this command:
php -f bin/magento info:language:list
Override the strings in your dictionary file:
"Original line" , "Translated line"
To avoid rewriting the file with the updating of the module, replace the translation file to your theme directory at app/design/frontend/THEME_VENDOR/theme_name/i18n/lg_LG.csv.
Where lg_LG.csv is a translation file in another locale.
To apply changes run static content deploy :
rm -rf pub/static/*
rm -rf var/view_preprocessed/*
php -f bin/magento setup:static-content:deploy
php -f bin/magento cache:flush
If Fast Mode enabled at the Autocomplete settings
Change lines as below:
"Sorry, nothing found for ""%1."" change %1 to %s
"Show all %1 results →" change %1 to %d
"Sorry, nothing found for ""%s."", "Sorry niets gevonden voor ""%s.""
"Show all %d results →", "Toon alle %d resultaten →"
4) Temporarily disable a Fast mode in the autocomplete settings;
5) Run static content deploy;
6) Enable Fast Mode and run Magento reindex.
If Fast Mode disabled at the Autocomplete settings
Change lines as below:
"Sorry, nothing found for ""%1."", "Sorry niets gevonden voor ""%1.""
"Show all %1 results →", "Toon alle %1 resultaten →"
4) Run static content deploy;
Please do not add both kinds of translations in your locale file for a Fast mode enabled and disabled option. It will not work.
All configuration options are located at Store -> Configuration -> Mirasvit Extensions -> Search Spell Correction section.
There are only two options for now. In both, our extension analyzes a customer's request and tries to find products whose names are most close to the original request.
Enable spell correction - enables automatic spelling correction.
Let's assume that your store has 'Samsung' products in the catalog.
When customer accidentally misspells Samsang phone
, default Magento search will return nothing, since you have no such a product.
But with this option enabled, the customer will be notified about potential misspelling and will see the results for the corrected search phrase Samsung phone
.
Enable fallback search - enables searching for partial request satisfaction, when there are no results for the original request.
Let's assume that customer puts a phrase red samsung phone
to the search, but you have only samsung phone
product.
If the store has no such a product, the default Magento search also will return nothing.
But with this option enabled, the customer will be notified about the error, and will receive results by the correct search phrase samsung phone
.
With detailed search reports, you are able to check how relative the search is to your customers.
From this information you will be able to fine-tune your search configuration so that your customers will be led to the products they need.
You can find reports in System / Search Management / Reports
You can check the Search Report by:
Search Volume
You can group or filter it
Search Terms
Validator - our own tool to check the search performance and validate the products search result.
It is useful:
It is located at System -> Search Management -> Validator section.
You can validate:
Includes current Search engine used and Regular search limit.
By default Regular search limit has a limitation 1000, but you can change Max number of items in the result in Search Results. Set 0 to disable limitation. If you have a large catalog, we suggest to limit the number of search results to 1000.
Fill in the Search term field with the search phrase and click button Run Test. A search time and number of results will be obtained (in seconds).
Fill in the Search term field with the search phrase and click button Run Test. A search time and number of results will be obtained (in seconds).
Validate search results - Test how quickly a product can be found.
The slow search speed happens due to low loading store page speed, it takes a lot of time to load the resources. Also, it can be related to the cache configuration. In general, search speed can only be improved via a more precise store configuration.
Describe search results weighting - Test why the product is / is not found and what matching attributes are contained in.
To upgrade the extension follow these steps:
`composer require mirasvit/module-search-elastic-ultimate --update-with-dependencies
to update current extension with all dependencies.
composer update mirasvit/*
command. It will update all Mirasvit modules, installed on your store. php -f bin/magento setup:upgrade
to install updates.rm -rf pub/static/frontend/*; rm -rf pub/static/backend/*; rm -rf var/view_preprocessed/*; php -f bin/magento setup:static-content:deploy
php -f bin/magento cache:clean
to clean the cache.php -f bin/magento indexer:reindex catalogsearch_fulltext
to reindex search indexesTo temporarily disable the extension please follow these steps:
php -f bin/magento module:disable Mirasvit_Search Mirasvit_SearchMysql Mirasvit_SearchElastic Mirasvit_SearchAutocomplete Mirasvit_Misspell Mirasvit_SearchLanding Mirasvit_SearchReport
to disabled the extension. To uninstall the extension please follow these steps:
composer remove mirasvit/module-search-elastic-ultimate
to remove the extension. (2021-05-07)
(2021-02-23)
(2021-01-28)
(2021-01-11)
(2020-09-17)
(2020-09-07)
(2020-06-16)
(2020-06-02)
(2020-04-30)
(2020-04-23)
(2020-04-14)
(2020-04-07)
(2020-03-18)
(2020-03-05)
(2020-02-18)
(2020-02-13)
(2020-02-12)
(2020-02-03)
(2019-12-17)
(2019-11-28)
(2019-11-27)
(2019-11-25)
(2019-11-13)
(2019-11-11)
(2019-10-16)
(2019-10-09)
(2019-10-09)
(2019-09-10)
(2019-09-03)
(2019-08-28)
(2019-08-27)
(2019-07-30)
(2019-07-08)
(2019-06-13)
(2019-04-24)
(2019-04-08)
(2019-03-21)
(2019-03-19)
(2019-01-04)
(2018-12-29)
(2018-12-25)
(2018-12-14)
(2018-12-13)
(2018-12-06)
(2018-12-06)
(2018-12-05)
(2018-11-29)
(2018-11-15)
(2018-11-13)
(2018-11-13)
(2018-11-05)
(2018-11-05)
(2018-11-02)
(2018-10-29)
(2018-10-15)
(2018-10-12)
(2018-10-09)
(2018-10-09)
(2018-10-03)
(2018-10-03)
(2018-10-01)
(2018-09-28)
(2018-09-26)
(2018-09-26)
(2018-09-21)
(2018-09-21)
(2018-09-21)
(2018-09-20)
(2018-09-20)
(2018-09-18)
(2018-09-17)
(2018-09-11)
(2018-09-10)
(2018-09-06)
(2018-09-06)
(2018-08-27)
(2018-08-01)
(2018-06-08)
(2018-05-17)
(2018-03-06)
(2018-03-06)
(2018-03-06)
(2018-02-13)
(2018-02-12)
(2018-02-01)
(2018-01-30)
(2018-01-16)
(2018-01-15)
(2018-01-09)
(2017-12-14)
(2017-12-14)
(2017-12-13)
(2017-12-06)
(2017-12-01)
(2017-12-01)
(2017-11-29)
(2017-11-21)
(2017-11-20)
(2017-11-17)
(2017-10-17)
(2017-10-17)
(2017-10-12)
(2017-10-05)
(2017-09-28)
(2017-09-27)
(2017-09-08)
(2017-09-06)
(2017-09-05)
(2017-09-04)
(2017-08-31)
(2017-08-14)
(2017-08-08)
(2017-08-04)
(2017-07-28)
(2017-07-21)
(2017-06-30)
(2017-06-27)
(2017-06-22)
(2017-06-21)
(2017-06-19)
(2017-06-19)
(2017-06-16)
(2017-06-07)
(2017-06-07)
(2017-05-29)
(2017-05-24)
(2017-05-24)
(2017-05-23)
(2017-05-18)
(2017-05-04)
(2017-04-26)
(2017-04-18)
(2017-04-18)
(2017-04-13)
(2017-04-12)
(2017-04-10)
(2017-04-07)
(2017-04-06)
(2017-04-06)
(2017-04-06)
(2017-04-05)
(2017-04-05)
(2017-04-04)
(2017-04-04)
(2017-03-31)
(2017-03-31)
(2017-03-09)
(2017-03-06)
(2017-03-03)
(2017-02-17)
(2021-06-30)
(2021-04-28)
(2021-04-14)
(2021-02-22)
(2020-11-26)
(2020-11-13)
(2020-09-03)
(2020-06-23)
(2020-06-09)
(2020-05-25)
(2020-04-30)
(2020-04-23)
(2020-04-14)
(2020-03-06)
(2020-03-04)
(2020-02-19)
(2020-02-11)
(2019-12-30)
(2019-12-10)
(2019-11-21)
(2019-11-11)
(2019-11-08)
(2019-10-24)
(2019-10-16)
(2019-10-03)
(2019-08-29)
(2019-08-28)
(2019-08-20)
(2019-08-13)
(2019-07-31)
(2019-07-04)
(2019-06-27)
(2019-05-22)
(2019-05-15)
(2019-04-24)
(2019-04-08)
(2019-04-01)
(2019-03-28)
(2019-03-21)
(2019-03-13)
(2021-02-22)
(2020-09-07)
(2020-04-13)
(2020-02-18)
(2019-11-11)
(2019-08-13)
(2019-08-06)
(2019-06-27)
(2019-06-27)
(2019-05-08)
(2018-02-25)
(2018-02-25)
(2018-12-10)
(2018-11-29)
(2018-10-16)
(2018-10-12)
(2018-10-09)
(2018-09-26)
(2018-09-21)
(2018-09-21)
(2018-09-20)
(2018-09-20)
(2018-09-19)
(2018-09-12)
(2018-09-07)
(2018-09-05)
(2018-01-30)
(2017-11-20)
(2017-11-16)
(2017-11-15)
(2017-11-13)
(2017-09-27)
(2017-09-26)
(2017-08-08)
(2017-05-04)
(2017-04-13)
(2017-04-10)
(2021-04-19)
(2020-09-29)
(2020-03-05)
(2019-09-09)
(2019-06-04)
(2018-11-29)
(2018-10-10)
(2018-04-12)
(2017-09-26)
(2017-07-25)
(2017-05-03)
(2017-05-03)
(2021-06-30)
(2020-10-15)
(2020-07-28)
(2020-03-16)
(2020-01-24)
(2019-10-08)
(2019-09-18)
(2019-08-13)
(2019-05-27)
(2019-02-12)
(2018-11-29)
(2018-10-01)
(2018-09-19)
(2018-05-31)
(2018-04-11)
(2017-12-25)
(2017-12-13)
(2017-11-17)
(2017-10-26)
(2017-09-28)
(2017-09-26)
(2017-08-09)
(2017-07-12)
(2017-07-10)
(2017-06-20)
(2017-05-10)
(2017-04-11)
(2017-02-20)
(2017-02-03)
(2016-11-21)
(2016-06-24)
(2016-06-16)
(2016-04-27)
(2016-02-23)
(2016-02-07)
(2020-10-15)
(2020-03-16)
(2019-11-14)
(2018-08-21)
(2018-04-20)
(2018-02-14)
(2017-09-26)
(2017-07-21)