brief: | Ua lagolagoina nei e le i18n.site le su'esu'eina o tusitusiga atoa e leai se server.

O lenei tusiga o loʻo faʻaalia ai le faʻatinoina o tekinolosi suʻesuʻega atoatoa i luma pito i luma, e aofia ai faʻailoga faʻaliliu na fausia e IndexedDB, suʻesuʻega prefix, faʻavasegaina o upu ma le tele-gagana lagolago.

Pe a fa'atusatusa i fofo o lo'o i ai nei, o le su'esu'ega o tusitusiga atoa i luma o le i18n.site e la'ititi ma vave, talafeagai mo 'upega tafa'ilagi laiti ma feololo e pei o pepa ma blogs, ma o lo'o avanoa i luga ole laiga.


Mama'o Pito I Luma Fa'aliliu Fa'aliliuga Su'esu'ega Atoa

Fa'asologa

I le mae'a ai o ni nai vaiaso o atina'e, i18n.site (se fa'aliliuga fa'amama markdown gagana & fau 'upega tafa'ilagi mea faigaluega) o lo'o lagolagoina nei le su'esu'ega atoatoa i luma.

O lenei tusiga o le a faʻasoaina le faʻatinoga faʻapitoa o le i18n.site suʻesuʻega faʻamaʻi pito i luma Asiasi i18n.site

Fa'ailoga / puna :

Se Va'aiga Lautele Ole Serverless Full-Text Search Solutions

Mo 'upega tafaʻilagi faʻapitoa laiti ma feololo e pei o pepa / blogs a le tagata lava ia, o le fausiaina o se faʻataʻitaʻiga o suʻesuʻega atoa e fai e le tagata lava ia e mamafa tele, ma o le suʻesuʻeina o tusitusiga atoa e leai se tautua o le filifiliga sili lea ona taatele.

O fa'ai'uga su'esu'e fa'amaumauga atoa e leai ni 'au'aunaga e pa'u'ū i ni vaega lautele se lua:

Muamua, tutusa algolia.com E tu'uina atu e 'au'aunaga su'esu'e vaega lona tolu vaega pito i luma mo su'esu'ega atoa.

O ia 'au'aunaga e mana'omia le totogiina e fa'atatau i le tele o su'esu'ega, ma e masani ona le maua e tagata fa'aoga i le atunu'u tele o Saina ona o fa'afitauli e pei o le tausisia o le upega tafa'ilagi.

E le mafai ona fa'aoga tuusao, e le mafai ona fa'aoga i luga ole initaneti, ma e tele ni tapula'a. E lē tele ni tala e talanoaina i lenei mataupu.

O le lona lua ole su'esu'ega atoa i luma pito i luma.

I le taimi nei, ElasticLunr.js su'esu'ega lunrjs pito i luma e aofia ai lunrjs

lunrjs E lua auala e fausia ai fa'asino igoa, ma e iai uma fa'afitauli.

  1. faila fa'asinomaga na muai fausia

    Ona o le faasinoupu o lo'o i ai upu mai pepa uma, e lapo'a tele. Soo se taimi lava e faaopoopo pe suia ai se pepa, e tatau ona utaina se faila faasinoupu fou. O le a faʻateleina le taimi faʻatali a le tagata faʻaoga ma faʻaaogaina le tele o bandwidth.

  2. U'u pepa ma fausia fa'asino igoa ile lele

    Fausiaina o se fa'asinomaga ose galuega fa'akomupiuta O le toe fausia o le fa'asino i taimi uma e te maua ai o le a mafua ai le fa'aletonu ma le le lelei o le fa'aoga.


I le faaopoopo atu i lunrjs , o loʻo i ai nisi faʻamatalaga suʻesuʻega atoa, pei ole :

fusejs , fuafua le tutusa i le va o manoa e su'e.

O le fa'atinoga o lenei fofo e matua leaga lava ma e le mafai ona fa'aogaina mo su'esu'ega atoa (va'ai Fuse.js Ole fesili umi e sili atu nai lo 10 sekone, fa'afefea ona fa'amalieina? ).

TinySearch , fa'aoga Bloom filter e su'e ai, e le mafai ona fa'aoga mo su'esu'ega muamua (mo se fa'ata'ita'iga, ulufale i goo , su'esu'e good , google ), ma e le mafai ona maua fa'apena fa'amae'a fa'amae'a.

Ona o le le atoatoa o fofo o loʻo i ai nei, na fausia ai i18n.site se fofo fou o suʻesuʻega atoa i luma, o loʻo i ai uiga nei :

  1. Lagolago su'esu'ega tele-gagana ma e la'ititi le lapopo'a Ole lapo'a ole su'esu'ega pe a uma ona afifi gzip ole 6.9KB (mo fa'atusatusaga, ole lapo'a ole lunrjs ole 25KB ).
  2. Fausia se fa'ailoga fa'aliliu e fa'atatau i indexedb , lea e fa'aitiitia ai le manatua ma e vave.
  3. Pe a faʻaopoopoina / faʻaleleia pepa, naʻo pepa faʻaopoopo pe suia e toe faʻasinoina, faʻaitiitia ai le aofaʻi o faʻatusatusaga.
  4. Lagolago su'esu'ega prefix, lea e mafai ona fa'aalia ai fa'ai'uga o su'esu'ega i le taimi moni a'o lomi le tagata fa'aoga.
  5. Avanoa Tuimotu

I lalo, i18n.site faʻamatalaga faʻatinoga faʻapitoa o le a faʻaalia i auiliiliga.

Vaevaega O Upu E Tele Gagana

E fa'aogaina e le fa'avasegaga o upu le upu fa'aleaganu'u a le su'esu'ega Intl.Segmenter , ma o lo'o lagolagoina e tagata su'esu'e fa'apitoa uma lenei fa'aoga.

O le upu segmentation coffeescript code e fa'apea

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()

i: