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
MultiUnifiedSearch
the search request usesLanguageCulture
in amsearch
context for language routing, ifLanguageCulture
is not specified,PreferredCulture
becomes 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 15 days ago