Language-specific queries
Describes how to create queries that apply to specific languages.
When you set up an index, you define its supported languages. When searching a defined language, you use the Client class and the Search extension method, and pass to the Search extension method an instance of the Language class.
Optimizely Search & Navigation also has a Language routing feature that lets you limit search queries to documents in a specified language.
Optimizely Search & Navigation exposes an instance for each supported language as a static property on the Language class.
client.Search<BlogPost>(Language.Swedish)
.For("turtles")
.InField(x => x.Title);For msearch queries (available from version 16.6.0):
client.MultiSearch<BlogPost>(Language.English)
.Search(s => s.For("tiger").InField(x => x.Title))
.Search(s => s.For("bear").InField(x => x.Title));
//or
client.MultiSearch<BlogPost>()
.Search(s => s.For("tiger").InField(x => x.Title))
.Search(s => s.For("bear").InField(x => x.Title))
.LanguageRouting(Language.English);
//or
client.MultiUnifiedSearch()
.UnifiedSearch(s => s.For("tiger"))
.UnifiedSearch(s => s.For("bear"))
Note
- If you using
MultiUnifiedSearchthe search request usesLanguageCulturein amsearchcontext for language routing, ifLanguageCultureis not specified,PreferredCulturebecomes the default language routing. You can override this by chainingLanguageRouting(Language.English)method to the query builder.- You can search all languages by using
LanguageRouting(Language.All)orLanguageRouting(Language.None).
The language parameter only applies when specifying one or more fields to search. If you do not select fields, Optimizely Search & Navigation searches over the special _all field, which supports only a single analyzer. Likewise, it uses the standard analyzer when searching attachments (Word documents, PDFs, and so on).
When a language is specified, the search applies stemming tailored to that language. Consequently, when you include a language parameter, Optimizely Search & Navigation provides results across all languages and for stemmed words in the specified language. To restrict results to a particular language, use a filter (such as, FilterForVisitor).
Updated about 2 months ago