Solr Fuzzy Suggester e Solr Infix Suggester su Ajax

Illustrazione
Descrizione del Progetto
Per una ricerca efficiente su un sito web, è importante che gli utenti trovino rapidamente e facilmente i risultati appropriati. Solr Fuzzy Suggester e Solr Infix Suggester offrono una soluzione efficiente per questo. Possono essere richiamati e filtrati tramite query Ajax.
Il suggeritore viene attivato tramite il componente XML SuggestComponent nel file solrconfig.xml, come mostrato nel seguente esempio di codice:
<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>
Utilizzando Solr Fuzzy Suggester e Solr Infix Suggester, gli utenti possono ottenere rapidamente e facilmente risultati pertinenti, poiché ricevono suggerimenti e funzionalità di completamento automatico. I risultati delle query possono quindi essere filtrati per garantire che vengano visualizzati solo i risultati più rilevanti.
Implementando queste tecnologie, i siti web possono offrire funzionalità di ricerca migliorate e una migliore esperienza utente.
Esempio di Configurazione (Evidenziatore di Sintassi)
<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>
L'immagine mostra cosa fa il suggeritore: l'input non produce una corrispondenza esatta e Solr Suggester restituisce suggerimenti simili. Esistono diversi modi per determinare la somiglianza tra stringhe. Ne menzionerò due qui.
1) Fuzzy (distanza di Levenshtein)
La prima possibilità è fuzzy, che si basa sull'algoritmo della distanza di Levenshtein.
In JavaScript, apparirebbe così:
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 and b are strings
2) Infix (corrispondenza del prefisso e indice Lucene)
La seconda possibilità è infix, che si basa sulla corrispondenza del prefisso con i token nel testo indicizzato. Utilizza l'indice Lucene per il suo dizionario. Lucene è una libreria di ricerca full-text (Apache Software Foundation) che contiene librerie di programmazione open-source.
In pratica, è una struttura indicizzata che crea token durante l'elaborazione. Gli spazi possono segnare la fine o l'inizio di una stringa. Le singole stringhe vengono normalizzate per una migliore corrispondenza — ad esempio, convertendo le lettere maiuscole in minuscole — e vengono indicizzate anche più varianti correlate dal dizionario.
Il vantaggio risiede nelle opzioni che possono essere definite nella query, il che fornisce maggiore flessibilità.
Cosa fanno i motori di ricerca commerciali?
Una combinazione di entrambi gli approcci è essenzialmente ciò che offrono la maggior parte dei motori di ricerca. Quando si inserisce l'input nel campo di ricerca, le singole stringhe vengono suggerite nel contesto di altre stringhe e termini. Ciò si traduce in una ricerca semantica.
Per i grandi fornitori di ricerca, questi risultati vengono adattati commercialmente e indirizzano gli utenti verso indici prioritari. Le pagine vengono ordinate e categorizzate tramite regole e linee guida. I gruppi di interesse vengono determinati tramite tecnologie di tracciamento, algoritmi di intelligenza artificiale e marketing di database, e la ricerca viene adattata al gruppo target.
Related Projects

SEO Mobile Webapp Monaco
SEO per applicazioni web mobili a Monaco di Baviera: indicizzazione pulita, Analytics, Sitemap strutturate e ottimizzazione per Google News come solido fondamento per una visibilità duratura.

Portale di digitalizzazione per Archivio Museo Biblioteca
Il Deutsche Museum Digitale si dedica alla digitalizzazione e all'apertura scientifica dei fondi della collezione di oggetti, dell'archivio e della biblioteca del Deutsches Museum.

Presence Platforms — Comunicazione aziendale che vince senza competere
Una Presence Platform trasforma le operazioni in chiarezza di livello decisionale: claim governati, formati ripetibili, collegamenti interni che indirizzano le decisioni e un ciclo di apprendimento settimanale che consolida fiducia e pipeline.