Solr Fuzzy Suggester und Solr Infix Suggester über Ajax

За ефикасну претрагу на веб-сајту важно је да корисници брзо и једноставно пронађу одговарајуће резултате. Solr Fuzzy Suggester и Solr Infix Suggester нуде ефикасно рјешење за то. Они се могу позивати и филтрирати преко Ajax упита.
Objavljeno:
Updated:
Admin User
published
Solr Fuzzy Suggester und Solr Infix Suggester über Ajax

Ilustracija

Опис пројекта

За ефикасну претрагу на веб-сајту важно је да корисници брзо и једноставно пронађу одговарајуће резултате. Solr Fuzzy Suggester и Solr Infix Suggester нуде ефикасно рјешење за то. Они се могу позивати и филтрирати преко Ajax упита.

Активирање suggester-а врши се преко XML компоненте SuggestComponent у датотеци solrconfig.xml, као што показује сљедећи примјер кода:

<searchComponent name="suggest" class="solr.SuggestComponent">
  <lst name="suggester">
    <str name="name">mySuggester</str>
    <str name="lookupImpl">FuzzyLookupFactory</str>
    <str name="dictionaryImpl">DocumentDictionaryFactory</str>
    <str name="field">suggest_field</str>
    <str name="weightField">weight</str>
    <str name="suggestAnalyzerFieldType">text_general</str>
    <str name="buildOnStartup">true</str>
  </lst>
</searchComponent>

Коришћењем Solr Fuzzy Suggester и Solr Infix Suggester-а, корисници могу брзо и једноставно добити релевантне резултате, јер добијају приједлоге и функције аутоматског довршавања. Резултати упита се затим могу филтрирати како би се осигурало да се приказују само најрелевантнији резултати.

Примјеном ових технологија веб-сајтови могу понудити побољшану функционалност претраге и боље корисничко искуство.

Примјер конфигурације (Syntax Highlighter)

<searchComponent name="suggest" class="solr.SuggestComponent">
  <lst name="suggester">
    <str name="name">mySuggester</str>
    <str name="lookupImpl">FuzzyLookupFactory</str>
    <str name="dictionaryImpl">DocumentDictionaryFactory</str>
    <str name="field">cat</str>
    <str name="weightField">price</str>
    <str name="suggestAnalyzerFieldType">string</str>
    <str name="buildOnStartup">false</str>
  </lst>
</searchComponent>

Слика показује шта suggester ради: унос не даје тачан погодак, а Solr Suggester враћа сличне приједлоге. Постоји више начина да се одреди сличност ниски (string). Овдје ћу поменути два.

1) Fuzzy (Левенштајн/Levenshtein дистанца)

Прва могућност је fuzzy, који се заснива на алгоритму Левенштајнове дистанце (Levenshtein distance).

У JavaScript-у би то изгледало овако:

function levenshtein(a, b) {
  var t = [], u, i, j, m = a.length, n = b.length;
  if (!m) { return n; }
  if (!n) { return m; }
  for (j = 0; j <= n; j++) { t[j] = j; }
  for (i = 1; i <= m; i++) {
    for (u = [i], j = 1; j <= n; j++) {
      u[j] = a[i - 1] === b[j - 1] ? t[j - 1] : Math.min(t[j - 1], t[j], u[j - 1]) + 1;
    } t = u;
  } return u[n];
}
// a и b су ниске (strings)

2) Infix (префикс-подударања и Lucene индекс)

Друга могућност је infix, који се заснива на префикс-подударањима са токенима у индексираном тексту. За свој рјечник користи Lucene индекс. Lucene је библиотека за претрагу пуним текстом (Apache Software Foundation) која садржи open-source програмске библиотеке.

У пракси, то је индексирана структура која током обраде креира токене. Размаци могу означавати крај или почетак ниске. Појединачне ниске се нормализују ради бољих погодака — на примјер, претварање великих слова у мала — а индексирају се и више повезаних варијанти из рјечника.

Предност је у опциjама које се могу дефинисати у упиту (query), што даје већу флексибилност.

Шта раде комерцијалне претраживачке машине?

Комбинација оба приступа је у суштини оно што већина претраживача нуди. При уносу у поље за претрагу, предлажу се појединачне ниске у контексту других ниски и појмова. Тако се добија семантичка претрага.

Код великих провајдера претраге ови резултати су комерцијално подешени и усмјеравају кориснике ка приоритетним индексима. Странице се сортирају и категоришу преко правила и смјерница. Интересне групе се одређују преко технологија праћења (tracking), AI алгоритама и database marketing-а, а претрага се прилагођава циљној групи.

Related Projects

SEO Mobilna veb aplikacija Minhen

SEO Mobilna veb aplikacija Minhen

SEO za mobilne veb aplikacije u Minhenu: čista indeksacija, Analitika, strukturisane sitemape i optimizacija za Google vesti kao solidan temelj za održivu vidljivost.

Presence Platforms — Korporativna komunikacija koja pobeđuje bez nadmetanja

Presence Platforms — Korporativna komunikacija koja pobeđuje bez nadmetanja

Platforma prisustva pretvara operacije u jasnoću na nivou donošenja odluka: upravljane tvrdnje, ponovljivi formati, interno povezivanje koje usmerava odluke i nedeljni ciklus učenja koji uvećava poverenje i prodajni levak.

Korporativna proizvodna platforma

Korporativna proizvodna platforma

Platforma za CMS i portale korporativnog nivoa sa višebaznom arhitekturom, pravom višejezičnošću i profesionalnom migracijom WordPress-a. Razvijena za skalabilne, bezbedne i sisteme za objavljivanje otporne na budućnost.

Veb-sajt sa stavom - Automobile Bauer Joomla

Veb-sajt sa stavom - Automobile Bauer Joomla

Локални корени, глобални домети — Комуникациони и медијски системи за савремено пословање

Локални корени, глобални домети — Комуникациони и медијски системи за савремено пословање

Pomažem lokalnim preduzećima da se predstave kao globalni brendovi: jasno pozicioniranje, sadržaj visokog kvaliteta i distribucija koja pretvara pažnju u potencijalne klijente.

Studija slučaja LibreOffice ChatGPT makro integracije

Studija slučaja LibreOffice ChatGPT makro integracije

Istražite prilagođenu Python OpenAI makro integraciju za ChatGPT u LibreOffice-u, unapređujući radne procese uz pomoć veštačke inteligencije direktno u vašim dokumentima.

Od globalnog poslovanja do kuhinje — sistem reverzne komunikacije koji i dalje skalira

Od globalnog poslovanja do kuhinje — sistem reverzne komunikacije koji i dalje skalira

Prestanite sa skaliranjem na osnovu buke. Počnite od globalnih signala, svedite ih na nekoliko stabilnih istina i pretvorite ih u nedeljne šablone, kontrolne liste i ponovljive “menije” koji isporučuju stvarnu vrednost.

Дигитални портал за архиву музеј и библиотеку

Дигитални портал за архиву музеј и библиотеку

Дигитални Музеј се бави дигитализацијом и научним радом колекција, објеката, архива, библиотека и музеја.

Kreiranje mobilnih aplikacija sa Apache Cordova: Višeplatformska studija slučaja

Kreiranje mobilnih aplikacija sa Apache Cordova: Višeplatformska studija slučaja

Istražite kako Apache Cordova transformiše veb aplikacije u višeplatformska mobilna rešenja za Android, iOS i još mnogo toga, sa detaljnim procesom, tehnološkim skupom i prednostima.

Od globalnog biznisa do kuhinje — Enterprise Media OS koji se smireno skalira (stajic.de + Showcase portali)

Od globalnog biznisa do kuhinje — Enterprise Media OS koji se smireno skalira (stajic.de + Showcase portali)

Globalna strategija funkcioniše samo ako preživi kuhinju: ograničenja, ritam, jasnoća i merljiv učinak. Evo kako Enterprise Media OS pretvara tržišnu buku u ponovljive sisteme — uz figure.rocks i loving.rocks kao showcase implementacije.

Od vizije do vrednosti: Maksimizovanje POS ROI-ja kroz dosledno kreiranje CI-ja i strateško brendiranje

Od vizije do vrednosti: Maksimizovanje POS ROI-ja kroz dosledno kreiranje CI-ja i strateško brendiranje

U savremenoj maloprodaji, premošćivanje jaza između kreativne vizije i finansijske vrednosti zahteva usklađivanje korporativnog identiteta (CI) sa prodajnim mestom (POS). Ova studija slučaja istražuje okvir za eliminisanje kognitivnog trenja radi poboljšanja ROI-ja.