Dev GuideAPI Reference
Dev GuideAPI ReferenceUser GuideLegal TermsGitHubDev CommunityOptimizely AcademySubmit a ticketLog In
Dev Guide

Implement a third-party search provider

Describes how to implement a third-party search provider and answers frequently asked questions about query types and functions.

📘

Note

Optimizely Configured Commerce provides the ability to integrate third party search providers. By default, Optimizely Configured Commerce uses Elasticsearch version 5.5 (Nest version 5) for search functionality on customer storefronts. Elasticsearch version 7.10 (Nest version 7) is now available in Configured Commerce. This version extends third party search abstraction, uses Shared Search pipelines, and improves performance, scalability, resilience, and effiency. Optimizely recommends upgrading to this version. See Elasticsearch's release notes for more information.

Configured Commerce provides a Shared Search abstraction that allows for new providers to be developed. Using the pipelines and handlers provided by Shared Search can decrease the time needed to implement the new search provider. For more information on what search functionality Configured Commerce provides, see Third party search pipelines.

The following questions and answers gives information on query types and how they should function.

  • What is a MultiMatchQuery?
    A Multi-Match Query is used to check for exact matches between the search query and various fields with a limit on how many fields must match for the Search Document to count as a hit.
  • What is a MultiMatchPrefixQuery?
    A Multi-Match Prefix Query is used to find start of matches between the search query and various fields. There is a limit on how many fields must match for the Search Document to count as a hit.
  • What is a MultiMatchFuzzyQuery?
    A Multi-Match Fuzzy Query is used to find loose matches between the search query and various fields. There is a limit to how many fields have to match for the Search Document to count as a hit.
  • What is a FunctionScoreQuery?
    Using SearchScoreFunction and FunctionBoostMode allows a query to be boosted based on a specific field and a specified Boost Mode. Supported FunctionBoostMode types are Multiply, Replace, Sum, Average, Max, or Min.