Serve users worldwide with proper RTL support, 50+ languages, transliteration, and language-aware stemming. One search index for the whole world.
SUPPORTED LANGUAGES & SCRIPTS
Perfect handling of Right-to-Left languages (Arabic, Hebrew, Persian, Urdu) and Left-to-Right scripts in the same app.
Linguistic stemming for Arabic, Chinese, Japanese, Korean, Thai, and 50+ languages. Match variations of words correctly.
Remove diacritics automatically. Search for "café" finds "cafe", handles Arabic diacriticals (harakat) and Hebrew vowels.
Proper collation for Arabic, Hebrew, CJK, Thai, Devanagari, and other scripts. Sort users see what they expect.
Users can search "beirut" and find "بيروت", "Beijing" finds "北京". Approximate matches across writing systems.
Correctly parse and search mixed RTL/LTR content. Emoji, URLs, and numbers display correctly in results.
Shopify, WooCommerce, and custom platforms selling to Arabic, Hebrew, Persian, and Urdu speakers. Users search in their native language.
Apps serving users across 50+ countries need search that respects language norms. One search for all regions.
News sites, blogs, and digital publishers with RTL content. Search works identically for Arabic and English articles.
Hotels, airlines, and travel sites need search for place names in multiple scripts and languages. "Bangkok" finds "กรุงเทพ".
Tell SearchJet which language each document is in, automatic handling of stemming and analysis
// Index one document per language (server-side, private key)
fetch('https://app.searchjetengine.com/api/v1/index/bulk', {
method: 'POST',
headers: {
'Authorization': 'Bearer ' + process.env.SEARCHJET_PRIVATE_KEY,
'Content-Type': 'application/json'
},
body: JSON.stringify({
documents: [
{ id: 'prod_123_ar', title: 'ساعة رياضية', // Arabic
content: 'ساعة...', url: 'https://example.com/ar/p/123',
language: 'ar' },
{ id: 'prod_123_en', title: 'Sports Watch',
content: 'A sports watch...', url: 'https://example.com/en/p/123',
language: 'en' },
{ id: 'prod_123_zh', title: '运动手表', // Chinese
content: '运动手表...', url: 'https://example.com/zh/p/123',
language: 'zh' }
]
})
})Users can search in Latin characters and find RTL results (and vice versa)
// RTL search box: <input id="q" dir="rtl" lang="ar" placeholder="ابحث...">
const q = document.getElementById('q').value; // 'القاهرة' or 'cairo'
const data = await fetch(
'https://app.searchjetengine.com/api/v1/search?q=' +
encodeURIComponent(q) + '&limit=10',
{ headers: { 'Authorization': 'Bearer YOUR_SEARCH_KEY' } }
).then(r => r.json());
// Index each place with both names, e.g.
// { id: 'cairo', title: 'Cairo', content: 'القاهرة Cairo, Egypt', ... }
// so "cairo" and "القاهرة" both match it.
// data.results is the array of hits:
// [{ title: 'Cairo', url: '...', ... }]One SearchJet index serves searches in multiple languages without creating separate indices
// Search in user's chosen language (browser, SEARCH key)
// "language" must be marked filterable in your index settings,
// otherwise the API returns INVALID_FILTER.
function search(query, userLanguage) {
// query can be Arabic, Hebrew or CJK: 'ساعة', 'שעון', '手表'
const url = 'https://app.searchjetengine.com/api/v1/search' +
'?q=' + encodeURIComponent(query) +
'&filters=' + encodeURIComponent('language = "' + userLanguage + '"') +
'&limit=20';
return fetch(url, {
headers: { 'Authorization': 'Bearer YOUR_SEARCH_KEY' }
})
.then(r => r.json())
.then(data => data.results); // array of hits
}Linguistic support for major global languages
Configure language fields and analyzers
Arabic, Hebrew, Persian fully supported
Cross-script search included in all plans
Reach speakers of every supported language
Growing markets that expect native-language search
Reach non-English speakers worldwide with proper RTL support, multilingual search, and transliteration. One index. Unlimited languages.
Need help with a specific language? Email our team at support@searchjetengine.com