brief: | i18n.site ukax jichhax jan servidor ukan phuqhat qillqat thaqhañ yanapt’i.

Aka qillqatax q’uma front-end phuqhat qillqat thaqhañ tecnología ukan phuqhawip uñt’ayi, ukax IndexedDB ukan lurat índice invertido, prefijo thakhi, aru segmentación optimización ukat walja arut yanapt’awinaka.

Jichha utjki uka solucionanakamp chikachasiñatakixa, i18n.site ukax q’uma front-end phuqhat qillqat thaqhawipax jisk’akiwa ukatx jank’akiw, jisk’a ukhamarak jach’a sitios web ukanakatakix askiwa documentos ukat blogs ukanakataki, ukatx jan internetanx utjarakiwa.


Puro Front-End Invertido Phuqhat Qillqat Thaqhaña

Sikunsya

Walja semananak lurañ tukuyatatxa, i18n.site (mä purapat estático markdown multilingualtranslation & sitio web lurañ herramienta) jichhax q’uma front-end phuqhat qillqat thaqhañ yanapt’i.

Aka qillqatanx i18n.site q’uma front-end phuqhat qillqat thakhinak uñt’ayañaw wakisi i18n.site

Código / :

Mä Uñakipäwix Servidorless Ukan Phuqhat Qillqat Thakhinak Thaqhañ Askichawinakata

Jisk’a ukat jach’a sitios web purapat estáticos ukanakatakix documentos/blogs personales ukanakatakix mä auto-construido completo-texto thakhi thaqhañ backend lurañax wali ch’amawa, ukatx servicio-free full-text thakhi thaqhañax juk’amp uñt’atawa.

Servidor jan phuqhat qillqat thakhi thaqhañ solucionanakax pä jach’a jamuqaruw jaqukipata:

Nayraqatxa, uñtasita algolia.com Kimsïr thakhi thaqhañ yanapt’irinakax componentes front-end ukanakaw taqpach qillqat thaqhañatakix churapxi.

Ukham servicios ukanakax volúmenes de búsqueda ukarjam payllañ munapxi, ukatx China continental uksan apnaqirinakatakix janiw utjkiti kunatix jan walt’awinakax utjiwa, kunjamakitix sitio web ukan phuqhawipa.

Janiw jan internetan apnaqatäkaspati, janiw intranet ukan apnaqatäkaspati, ukat jach’a limitaciones ukaniwa. Aka yatichäwinjja janiw wal parlkiti.

Payïrix q’uma front-end phuqhat qillqat thaqhañawa.

Jichhax, común puro front-end phuqhat qillqat thakhinak thaqhañax lunrjs ukat ElasticLunr.js ( lunrjs secundario desarrollo ukarjam luratawa).

lunrjs Índices lurañatakix pä thakhiw utji, ukatx panpachaniw jan walt’awinakanïpxi.

  1. Nayraqat lurat índice qillqatanaka

    Kunatix índice ukanx taqi qillqatanakan arunakapaw utji, ukat jach’a jach’akiwa. Kunawsatix mä qillqatax yapxatatäki jan ukax mayjt’ayatäki ukhax machaq índice archivo ukaw apkatatäñapa. Ukax apnaqirin suyt’añ pachap jilxatayañapawa ukat walja ancho de banda ukanak apnaqañapawa.

  2. Documentonak cargaña ukat índices ukanak luraña

    Mä índice lurañax mä computacionalmente intensivo lurawiwa Índice ukar sapa kuti mantañax qhanpach qhiphart’awinaka ukat jan wali experiencia de usuario ukanakaw utjani.


lunrjs ukjat sipansa, yaqha phuqhat qillqat thakhinak thaqhañ amtanakaw utjaraki, sañäni :

fusejs , thaqhañatakix cadenas ukanakan niya kipkakïtap jakthapi.

Aka solución ukan lurawipax wali jan waliwa ukatx janiw taqpach qillqat thaqhañatakix apnaqatäkaspati (uñxatt’aña Fuse.js Jaya jiskt’awix 10 segundos ukjat jilaw munasispa, kunjamas sum apnaqañax? ).

TinySearch goo good google

Kunatix utjki uka askichawinakan jan walt’awinakapatxa, i18n.site machaq q’uma front-end phuqhat qillqat thakhinak uñstayawayiwa, ukax aka uñacht’awinakaniwa :

  1. Walja arunak thaqhañ yanapt’i ukatx jisk’a jach’a thakhiw gzip ukjam paquetear tukuyatatx 6.9KB (uñakiptañatakix lunrjs tamapax 25KB )
  2. Mä índice invertido indexedb ukarjam luraña, ukax juk’a amuyunak apthapi ukat jank’akiw.
  3. Kunawsatix qillqatanakax yapxatatäki/mayjt’ayat ukhax yapxatat jan ukax mayjt’ayat qillqatanakakiw wasitat indexatäxi, ukax jakhüwinakarux jisk’achatawa.
  4. Prefijo thakhi thaqhaña yanapt’i, ukaxa chiqapa pachana thakhinchawi uñacht’ayaspawa kunapachatixa apnaqirixa qillqt’aski ukhaxa.
  5. Ukax Jan Internetankiwa

Aka aynachanxa, i18n.site técnico phuqhawi tuqita yatiyawixa wali suma uñt’ayatarakiniwa.

Walja Arut Arunak T’aqanuqt’aña

Arunak t’aqanuqañax uñakipirin nativo aru t’aqanuqt’awip apnaqi Intl.Segmenter , ukatx taqi jach’a uñakipirinakax aka interfaz ukarux yanapt’apxiwa.

Aru segmentación coffeescript codigo ukax akhamawa

SEG = new Intl.Segmenter 0, granularity: "word"

seg = (txt) =>
  r = []
  for {segment} from SEG.segment(txt)
    for i from segment.split('.')
      i = i.trim()
      if i and !'|`'.includes(i) and !/\p{P}/u.test(i)
        r.push i
  r

export default seg

export segqy = (q) =>
  seg q.toLocaleLowerCase()

ukana:

Índice Luraña

5 yänak imañ tablas ukanakax IndexedDB :

Uka matriz de documento url ukatxa versión número ver ukaru pasañawa, ukatxa thaqhañawa documento ukaxa utjiti janicha tabla doc Jani utjkchi ukhaxa, mä índice invertido lurañawa. Uka pachparaki, uka qillqatanakaxa jani pasatäki ukanakatakixa índice invertido ukaxa apsuñawa.

Ukhamatwa indexación incremental ukax lurasispa ukatx jakhthapiwix jisk’achatarakiwa.

Front-end ukan mayacht’asiwipanx, índice ukan barra css progreso de carga ukax / , nayrïr kuti cargañ pachanx jan progress + .

IndexedDB Jach’a Concurrente Qillqaña

idb proyectox encapsulación asíncrona de IndexedDB

IndexedDB uñakipaña ukat qillqañanakax asíncrono ukhamawa. Mä índice lurañatakixa, qillqatanakaxa mä pachanwa apkatatarakini, ukhamata índice lurañataki.

Ukhamat mä chikat datos chhaqhayañatakix competitivo qillqatanakat jark’aqasiñatakix, coffeescript código ukar uñakipt’añamawa ukatx mä ing caché uñakipt’añamp qillqañamp chikaw yapxatasma atipt’asir qillqatanakar jark’aqañataki.

pusher = =>
  ing = new Map()
  (table, id, val)=>
    id_set = ing.get(id)
    if id_set
      id_set.add val
      return

    id_set = new Set([val])
    ing.set id, id_set
    pre = await table.get(id)
    li = pre?.li or []

    loop
      to_add = [...id_set]
      li.push(...to_add)
      await table.put({id,li})
      for i from to_add
        id_set.delete i
      if not id_set.size
        ing.delete id
        break
    return

rindexPush = pusher()
prefixPush = pusher()

Precisión Ukat Amtasiña

Uka thakhix nayraqatax segmento de palabras clave ukanakaw apnaqirin mantani.

Aru t’aqanuqt’awi qhipatxa N arunakaw N-1 N-2 amuyt’añäni 1

Nayraqatax uñacht’ayat thakhinchawix jiskt’awix chiqapawa, ukatx qhipharux apkatatäki ukax (juk’amp cargañ botón ukar ch’iqt’aña) amtawix tasa de recall ukar ch’amanchatawa.

Carga Ukax Demanda Ukarjamawa

Jaskhiwi jank’aki suma uñjañatakixa, thakhinchawixa yield generador ukampiwa carga demanda ukarjama phuqhañataki, ukatxa limit kutiwa mä resultado jiskt’ata kutt’ayaraki.

Qhanacht’añatakix sapa kutiw yield ukjatx wasitat thaqhañax wakisi, ukatx IndexedDB ukjatx mä jiskt’äw luraw wasitat jist’arañaw wakisi.

Prefijo Chiqapa Pacha Thaqhaña

Uka thakhinchawi uñacht’ayañatakixa apnaqirixa qillqt’aski ukjaxa, sañäni, kunapachatixa wor ukja mantani ukjaxa, wor ukampi chimpuntata arunakaxa uñacht’ayatarakiwa, sañäni words ukatxa work .

Thakhi thakhix prefix tabla ukampiw qhipa arutakix arut jaljañ tukuyatat apnaqani, taqi arunak ukampi nayrïr chimpunak jikxatañataki, ukatx mäkiw thaqhañapa.

Anti-shake función debounce ukax front-end ukan mayacht’asiwipanx apnaqatarakiwa (akjamat phuqhachata) ukhamat apnaqirin mantawipax thakhinak ch’amanchañapatakix juk’amp jisk’achañataki ukhamarak jakhüwinak jisk’achañataki.

export default (wait, func) => {
  var timeout;
  return function(...args) {
    clearTimeout(timeout);
    timeout = setTimeout(func.bind(this, ...args), wait);
  };
}

Ukax Jan Internetankiwa

Tabla índice ukax janiw nayrïr qillqat imatäkiti, arunakakiw imatäski, ukax imañax juk’akiw utji.

Thakhi lurawinak uñacht’ayañatakix nayrïr qillqat wasitat apkatañaw wakisi, ukatx service worker ukar uñtasitx janiw walja kuti red mayiwinakax utjkaspati.

Uka pachparakiw, kunatix service worker taqi qillqatanakax caché ukar uñtatawa, mä kutix apnaqirix mä thakhi lurawayxi ukhax taqpach sitio web, thakhinchawimp chika, jan internetanx utjiwa.

MarkDown Qillqatanakan Optimización Uñacht’ayaña

i18n.site 's q'uma front-end thakhi thakhix MarkDown qillqatanakatakiw suma wakicht'ata.

Uka thakhinchawi uñacht’ayasaxa, jaljan sutipa uñacht’ayatarakiniwa, ukatxa jaljanxa ch’iqt’atäki ukhaxa, uñakipt’atarakiniwa.

Mä Jukʼa Qhanañchtʼañäni

Invertido phuqhat qillqat thakhix q’uma nayrïr chiqan phuqhasiwayi, janiw servidor ukax wakiskiti. Jisk’a ukhamarak jach’a sitios web ukanakatakix wali askiwa documentos ukhamarak blogs personales ukanakataki.

i18n.site