Hide menu Last updated: Dec 09 2016
Area: Episerver Find Applies to versions: 12 and higher
Other versions:

Architecture and languages

Episerver Find is a powerful, scalable query platform that can index and query large amounts of structured or unstructured data of any type, create custom search functionality, and build advanced navigation for non-hierarchical content. This topic describes built-in functionality and the underlying technology, as well as supported languages in Find.

Functionality

The following functionality is included out-of-the-box:

Note: To ensure maximum availability and scaling flexibility, Episerver Find uses dynamic IP ranges. If you for example require whitelisting of IP addresses in the firewall, make sure that your firewall supports domain-based whitelisting.

Technical foundation

Episerver Find is built using ElasticSearch. The Episerver Find API enforces a number of conventions and restrictions to be aware of, such as adding mappings (which is automatically handled by the conventions) and adding and removing indexes.

Integration

Episerver Find can be easily extended and integrated with Episerver CMS and Commerce, using a .NET based client API. Interaction with the REST API through Javascript is done using JSON. Episerver Find is available as an on-premise solution or a software service. Episerver Find is not limited to being used from .NET. 

Architecture overview

Supported languages

Supported languages undergo an analysis process that breaks down text based on specific language characteristics. This process is designed to give better search results based on how a language's words are constructed. While content in additional languages may be added to the index, no analysis is done for unsupported languages. To learn more about the analysis process, see https://www.elastic.co/guide/en/elasticsearch/guide/current/analysis-intro.html.

Likewise, Find optimization only works with supported languages. So Find's advanced search capabilities are not applied to unsupported languages. However, content in unsupported languages is added to the index so is searchable.

Episerver Find supports these indexing languages:

  • Arabic
  • Armenian
  • Basque
  • Brazilian
  • Bulgarian
  • Catalan
  • Chinese
  • Cjk (Chinese, Japanese, and Korean)
  • Czech
  • Danish
  • Dutch
  • English
  • Finnish
  • French
  • Galician
  • German
  • Greek
  • Hindi
  • Hungarian
  • Indonesian
  • Irish
  • Italian
  • Latvian
  • Norwegian
  • Persian
  • Polish
  • Portuguese
  • Romanian
  • Russian
  • Spanish
  • Swedish
  • Thai
  • Turkish

See also: Language-specific queries

Compound splitting

​​​Many European languages contain compound words, such as the English term "steel thermos." In Swedish, that phrase is "ståltermos," one word. Compound words adversely affect relevancy for normal free-text search engines, especially for e-commerce, ​and can result in lower conversion rates.

Episerver Find uniquely includes a feature called compound splitting, which analyzes each word and discovers compound words. To continue the previous example, a visitor can search for "termos" and get a relevant match for "ståltermos". Most search solutions (including Elastic Search) do not include such functionality. And, solutions that do usually employ a less sophisticated approach that does not give the same high relevancy and associated conversion rates.

Compound splitting is available for Swedish and Norwegian.

Turning decompounding on/off [New in Episerver.Find 12.3.0]

The default query setting is to not decompound the query string. To enable decompounding, use this syntax:

.For("query", x => x.Analyzer = Language.Swedish.Analyzer)

Here's how it works. If a user submits a search term fotbollsmatch, the query only matches fotbollsmatch/er/en/… and not (as it did previously) ‘fotboll/ar/en/..’ and match/er/en/…

On the other hand, if a user submits the search term fotboll, the search matches fotboll/ar/en… ,fotbollsmatch/er/en/…, and fotbollsplan/er/en.

Related topics

Comments