lunr Volltextsuche liefert nicht alle Ergebnisse
Ein Kunde von mir betreibt eine kleine Intranet-Webseite auf Basis von Typemill mit einem Search-Plugin, welches auf lunrjs basiert.
Folgender Code war im Search-Plugin implementiert
var term = document.getElementById('searchField').value; |
Die Suche funktionierte grundsätzlich. Soabld ich aber nur nach einem Teilstring suchte, bekam ich keine Ergebnisse, sondern nur dann, wenn ich nach einem ganzen Wort gesucht habe.
Also, die Suche nach Daten lieferte mir alle Artikel in denen das Alleinstehnde Wort Daten vorkam. Sucht ich allerdings nur nach ate, bekam ich keine Treffer.
Klar, dachte icht mir, ich ergänze den Suchbegriff vorne und hinten einfach mit einem Wildcard-*
Nun kann man von einem durchschnittlichen Benutzer nicht erwarten, dass er seinen Suchbegriff vorne und hinten mit einem Sternchen versieht. Also änderte ich den Code des Plugins folgendermaßen ab:
var term = document.getElementById('searchField').value; |
Und siehe da, alles schien wunderbar zu funktionieren.
Kurz darauf suchte ich nach dem Begriff iPhone und musste feststellen, dass ich keinen Treffer ehielt, obwohl es zwei Artikel gab, in denen dieser Begrif vorkam. Hmmm?! Mit meiner Wildcard-Ergänzung habe ich die Search-Engine wohl ihrer Fähigkeit beraubt, ganze Worte zu finden. Die Suche nach Phon funktionierte einwandfrei, iPhone nicht.
Beheben konnte ich diese Einschränkung mit einer erneuten Ergänzung des Codes:
var term = document.getElementById('searchField').value; |
Jetzt findet die Suche tatsächlich alle Vorkommnisse, sei es ein Teilstring oder auch ein ganzes Wort.
:-D