Elasticsearch is a powerful and highly scalable distributed search engine that is used by such high-volume sites as eBay, Wikipedia, and GitHub. The implementation of Elasticsearch includes both search suggestions and recommendations. For installation instructions, see Set up Elasticsearch service in the developer documentation.

Step 1: Configure Search Options

  1. On the Admin sidebar, tap Stores. Then under Settings, choose Configuration.

  2. In the panel on the left under Catalog, choose Catalog.

  3. Expand the Catalog Search section.

  4. For the Search Engine field, clear the Use system value checkbox and choose the version that is installed on your server.

    • Elasticsearch (Deprecated) — Elasticsearch 2.0+ has reached end of life, and is now deprecated. To learn more, see Elastic Product End of Life Dates.

    • Elasticsearch 5.0+ (Default) — Elasticsearch 5.0+ is scheduled for end of life. To learn more, see Elastic Product End of Life Dates.

    • Elasticsearch 6.0+ (Recommended) —For the best performance, we recommend that you use the latest version of Elasticsearch 6.0+.

    To learn more about using Elasticsearch versions 2.x and 5.x, see Change the Elasticsearch Client.

    Elasticsearch Settings

  5. For Enable EAV Indexer, set if you want to enable or disable the Product EAV indexer. This feature improves indexation speed and restricts the indexer from use by 3rd party extensions. This option only displays for Elasticsearch or Elasticsearch 5.0+ Search Engines.

  6. To limit the length and word count of search query text, set the Minimal Query Length and Maximum Query Length.

    Important: The value set for this minimum and maximum range must be compatible with the corresponding range set in your Elasticsearch search engine configurations. For example, if you set these values to 2 and 300 in Magento, update the values in your search engine.

  7. To limit the amount of popular search results to cache for faster responses, set an amount for Number of top search results to cache.

    The default is 100. Entering a value of 0 caches all search terms and results when entered a second time.

  8. To limit the maximum number of search results to display for search autocomplete, set an amount for Autocomplete Limit. Restricting this amount increases performance of searches and reduces the displayed list size. The default amount is 8.

Step 2: Configure the Elasticsearch Connection

Elasticsearch Connection Settings

  1. Enter the Elasticsearch Server Hostname. The default is: localhost.

  2. Enter the Elasticsearch Server Port.

  3. In the Elasticsearch Index Prefix field, enter a prefix.to identify the Elasticsearch index. For example: Magento2.

  4. Set Enable Elasticsearch HTTP Auth to “Yes” to use HTTP authentication to prompt for a username and password to access Elasticsearch Server.

  5. In the Elasticsearch Server Timeout field, enter the number of seconds before the system times out. The default is: 15.

  6. To verify the configuration, tap Test Connection.

Step 3: Configure Suggestions and Recommendations

Search suggestions and recommendations can impact server performance.

  1. Set Enable Search Suggestions to “Yes”. Then, do the following:

    Elasticsearch Suggestion and Recommendation Settings

    • In the Search Suggestions Count field, enter the number of search suggestions to offer.

    • To show the number of results found for each suggestion, set Show Results for Each Suggestion to “Yes”.

  2. To offer recommendations, set Enable Search Recommendations to “Yes”. Then, do the following:

    • In the Search Recommendation Count field, enter the number of recommendations to offer.

    • To show the number of results found for each recommendation, set Show Results Count for Each Recommendation to “Yes”.

  3. When complete, tap Save Config.