queryLanguages
[]
'queryLanguages' => ['language ISO code', ...]
Can be used in these methods:
search,
setSettings,
browseObjects,
searchForFacetValues,
generateSecuredApiKey,
addApiKey,
updateApiKey
search,
set_settings,
browse_objects,
search_for_facet_values,
generate_secured_api_key,
add_api_key,
update_api_key
search,
setSettings,
browseObjects,
searchForFacetValues,
generateSecuredApiKey,
addApiKey,
updateApiKey
search,
set_settings,
browse_objects,
search_for_facet_values,
generate_secured_api_key,
add_api_key,
update_api_key
search,
setSettings,
browse,
searchForFacetValues,
generateSecuredApiKey,
addAPIKey,
updateAPIKey
search,
setSettings,
browseObjects,
searchForFacetValues,
generateSecuredApiKey,
addApiKey,
updateApiKey
Search,
SetSettings,
Browse,
SearchForFacetValues,
GenerateSecuredApiKey,
AddApiKey,
UpdateApiKey
Search,
setSettings,
browse,
searchForFacetValues,
generateSecuredApiKey,
addApiKey,
updateApiKey
Search,
SetSettings,
BrowseObjects,
SearchForFacetValues,
GenerateSecuredAPIKey,
AddAPIKey,
UpdateAPIKey
search,
setSettings,
browse index,
search into facet values,
generateSecuredApiKey,
add key,
update key
About this parameter
Sets languages for language-specific settings such as plurals, stop words, and dictionaries for detecting words in CJK languages.
queryLanguages
sets:
- A default list of languages used by
removeStopWords
andignorePlurals
(if they’re enabled). For example, if you enableignorePlurals
, the engine will apply the languages set inqueryLanguages
. - Sets the dictionary for word-detecting in CJK languages (=Chinese “zh”, Japanese “ja”, or Korean “ko”). For this, you must place the CJK language first in queryLanguages’ list of languages. For example, to ensure that Chinese word recognition is based on a Chinese dictionary and not the general algorithm used for all languages, you must place Chinese in the first position of the list of languages. Likewise, Japanese and Korean must be first in the list to ensure proper dictionary-based parsing.
Usage notes
- When working with Japanese data, you must also set “ja” in the
indexLanguages
parameter. queryLanguages
creates a default list of languages. This default can be overridden by any setting that uses the default. For example, if you set the default to English and French, you can setignorePlurals
to use the default but setremoveStopWords
to recognize only English stop words.- For optimum relevance, it’s recommended that you only enable languages used in your data.
You should always set queryLanguages
and indexLanguages
for your indices. If you don’t, the engine uses either the default (all supported languages) or the list of languages specified in ignorePlurals
and removeStopWords
.
This can lead to unexpected search results.
List of supported languages
Afrikaans=
af Arabic=
ar Azeri=
az Bulgarian=
bg Bengali=
bn Catalan=
ca Czech=
cs Welsh=
cy Danish=
da German=
de Greek=
el English=
en Esperanto=
eo Spanish=
es Estonian=
et Basque=
eu Persian (Farsi)=
fa Finnish=
fi Faroese=
fo French=
fr Irish=
ga Galician=
gl Hebrew=
he |
Hindi=
hi Hungarian=
hu Armenian=
hy Indonesian=
id Icelandic=
is Italian=
it Japanese=
ja Georgian=
ka Kazakh=
kk Korean=
ko Kurdish=
ku Kirghiz=
ky Lithuanian=
lt Latvian=
lv Maori=
mi Mongolian=
mn Marathi=
mr Malay=
ms Maltese=
mt Norwegian Bokmål=
nb Dutch=
nl Norwegian=
no Northern Sotho=
ns |
Polish=
pl Pashto=
ps Portuguese=
pt Brazilian=
pt-br Quechua=
qu Romanian=
ro Russian=
ru Slovak=
sk Albanian=
sq Swedish=
sv Swahili=
sw Tamil=
ta Telugu=
te Thai=
th Tagalog=
tl Tswana=
tn Turkish=
tr Tatar=
tt Ukranian=
uk Urdu=
ur Uzbek=
uz Chinese=
zh |
Examples
Set the default query languages
In this example, Spanish (‘es’) is set as the default language for both ignorePlurals
and removeStopWords
1
2
3
4
5
$index->setSettings([
'queryLanguages' => ['es'],
'removeStopWords' => true,
'ignorePlurals' => true
]);
Override query languages
In this example, the Spanish default for removeStopWords
is overridden by adding Catalan (‘ca’) to its list of languages.
1
2
3
$results = $index->search('query', [
'removeStopWords' => ['ca', 'es']
]);
Set the correct dictionary for word detection
Placing ‘ja’ in the first position ensures that the Japanese dictionary will be used whenever the engine detects CJK logograms.
1
2
3
$results = $index->search('query', [
'queryLanguages' => ['ja', 'en']
]);