Solr Fuzzy Suggester et Solr Infix Suggester via Ajax

Pour une recherche efficace sur un site web, il est important que les utilisateurs trouvent rapidement et facilement des résultats pertinents. Solr Fuzzy Suggester et Solr Infix Suggester offrent une solution efficace à cela. Ils peuvent être appelés et filtrés via des requêtes Ajax.
Publié:
Updated:
Admin User
published
Solr Fuzzy Suggester et Solr Infix Suggester via Ajax

Illustration

Description du projet

Pour une recherche efficace sur un site web, il est important que les utilisateurs trouvent rapidement et facilement les résultats appropriés. Solr Fuzzy Suggester et Solr Infix Suggester offrent une solution efficace à cet égard. Ils peuvent être appelés et filtrés via des requêtes Ajax.

Le suggester est activé via le composant XML SuggestComponent dans le fichier solrconfig.xml, comme illustré dans l'exemple de code suivant :

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

En utilisant Solr Fuzzy Suggester et Solr Infix Suggester, les utilisateurs peuvent obtenir rapidement et facilement des résultats pertinents, car ils bénéficient de suggestions et de fonctionnalités d'auto-complétion. Les résultats de la requête peuvent ensuite être filtrés pour garantir que seuls les résultats les plus pertinents sont affichés.

En mettant en œuvre ces technologies, les sites web peuvent offrir une fonctionnalité de recherche améliorée et une meilleure expérience utilisateur.

Exemple de configuration (Coloration syntaxique)

<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'image montre ce que fait le suggester : l'entrée ne donne pas de correspondance exacte, et le Solr Suggester renvoie des suggestions similaires. Il existe plusieurs façons de déterminer la similarité des chaînes de caractères. J'en mentionnerai deux ici.

1) Fuzzy (distance de Levenshtein)

La première possibilité est le fuzzy (flou), qui est basé sur l'algorithme de distance de Levenshtein.

En JavaScript, cela ressemblerait à ceci :

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 (correspondance de préfixe et index Lucene)

La deuxième possibilité est l'infixe, qui est basé sur la correspondance de préfixe avec des jetons dans le texte indexé. Il utilise l'index Lucene pour son dictionnaire. Lucene est une bibliothèque de recherche en texte intégral (Apache Software Foundation) qui contient des bibliothèques de programmation open source.

En pratique, il s'agit d'une structure indexée qui crée des jetons pendant le traitement. Les espaces peuvent marquer la fin ou le début d'une chaîne. Les chaînes individuelles sont normalisées pour de meilleures correspondances — par exemple, la conversion des majuscules en minuscules — et plusieurs variantes connexes du dictionnaire sont également indexées.

L'avantage réside dans les options qui peuvent être définies dans la requête, ce qui offre une plus grande flexibilité.

Que font les moteurs de recherche commerciaux ?

Une combinaison des deux approches est essentiellement ce que proposent la plupart des moteurs de recherche. Lors de la saisie dans le champ de recherche, des chaînes individuelles sont suggérées dans le contexte d'autres chaînes et termes. Il en résulte une recherche sémantique.

Pour les grands fournisseurs de recherche, ces résultats sont ajustés commercialement et dirigent les utilisateurs vers des index prioritaires. Les pages sont triées et catégorisées via des règles et des directives. Les groupes d'intérêt sont déterminés via des technologies de suivi, des algorithmes d'IA et du marketing de base de données, et la recherche est adaptée au groupe cible.

Related Projects

Du business mondial à la cuisine — OS média d'entreprise qui passe à l'échelle sereinement (stajic.de + Showcase Portals)

Du business mondial à la cuisine — OS média d'entreprise qui passe à l'échelle sereinement (stajic.de + Showcase Portals)

Une stratégie globale ne fonctionne que si elle survit à la cuisine : contraintes, cadence, clarté et résultats mesurables. Voici comment un Enterprise Media OS transforme le bruit du marché en systèmes reproductibles — avec figure.rocks et loving.rocks comme implémentations de démonstration.

Création d'applications mobiles avec Apache Cordova : Étude de cas multiplateforme

Création d'applications mobiles avec Apache Cordova : Étude de cas multiplateforme

Découvrez comment Apache Cordova transforme les applications web en solutions mobiles multiplateformes pour Android, iOS et plus encore, avec un processus détaillé, la pile technologique et les avantages.

Portail de numérisation pour Archives Musée Bibliothèque

Portail de numérisation pour Archives Musée Bibliothèque

Le Deutsche Museum Digital se consacre à la numérisation et à l'exploitation scientifique des collections de l'ensemble des objets, du fonds archivistique ainsi que de la bibliothèque du Deutsches Museum.

SEO Application Web Mobile Munich

SEO Application Web Mobile Munich

SEO pour les applications web mobiles à Munich : indexation propre, Analytics, sitemaps structurés et optimisation Google Actualités comme base solide pour une visibilité durable.

Racines locales, portée mondiale — Systèmes de communication & de médias pour l'entreprise moderne

Racines locales, portée mondiale — Systèmes de communication & de médias pour l'entreprise moderne

J'aide les entreprises locales à s'afficher comme des marques mondiales : un positionnement clair, du contenu à haut rendement et une distribution qui transforme l'attention en prospects.

De la vision à la valeur : Maximiser le ROI des points de vente grâce à une création d'identité visuelle cohérente et un branding stratégique

De la vision à la valeur : Maximiser le ROI des points de vente grâce à une création d'identité visuelle cohérente et un branding stratégique

Dans le commerce de détail moderne, combler l'écart entre la vision créative et la valeur financière nécessite d'aligner l'identité d'entreprise (CI) avec le point de vente (POS). Cette étude de cas explore le cadre permettant d'éliminer la friction cognitive afin d'améliorer le ROI.

Web Presence Making a Statement - Automobile Bauer Joomla

Web Presence Making a Statement - Automobile Bauer Joomla

Plateforme de production de classe entreprise

Plateforme de production de classe entreprise

Plateforme CMS et de portail de niveau entreprise avec architecture multi-bases de données, véritable multilinguisme et migration WordPress professionnelle. Conçue pour des systèmes de publication évolutifs, sécurisés et pérennes.

Du commerce mondial à la cuisine — Un système de communication inversé qui reste évolutif

Du commerce mondial à la cuisine — Un système de communication inversé qui reste évolutif

Arrêtez de passer à l'échelle en fonction du bruit. Commencez par des signaux globaux, réduisez-les à quelques vérités stables, et transformez-les en modèles hebdomadaires, checklists et « menus » reproductibles qui apportent une valeur réelle.

Plateformes de Présence — Communication d'entreprise qui gagne sans rivaliser

Plateformes de Présence — Communication d'entreprise qui gagne sans rivaliser

Une Presence Platform transforme les opérations en une clarté de niveau décisionnel : des affirmations gouvernées, des formats reproductibles, un maillage interne qui oriente les décisions, et une boucle d'apprentissage hebdomadaire qui démultiplie la confiance et le pipeline.

LibreOffice ChatGPT Intégration de macro Étude de cas

LibreOffice ChatGPT Intégration de macro Étude de cas

Explorez l'intégration de macro Python OpenAI personnalisée pour ChatGPT dans LibreOffice, optimisant les flux de travail avec l'assistance de l'IA directement dans vos documents.