Ich habe eine ASP.NET-Webanwendung und eine List<Product>
auf dem Server (in der Anwendung [] speichern). Klassenprodukt hat eine Name-Eigenschaft. Ich muss Benutzern die Möglichkeit geben, nach Produkten zu suchen, die auf Namen basieren. Zum Beispiel, wenn der Benutzer "Honda Computer" eingibt, muss die App "2001 Honda Passport Engine Computer (OEM)" anzeigen. Die Suche muss sehr schnell sein, in Zukunft werde ich Autocomplete-Funktionalität (AJAX) hinzufügen..NET-Anwendung - Suche Problem
Bisher hatte ich ein paar Ideen, wie dieses Problem zu lösen:
schreiben oder eine Open-Source-Implementierung von so etwas wie B-Baum, Trie, Suffixbaum, Präfix-Baum verwenden. Leider sind Datenstrukturen und Algorithmen nicht meine stärkste Fähigkeit (verdammt Harvard, so viel Geld für nichts).
Verwenden Sie eine Suchmaschine - Lucene.NET, Velocity oder MemCached.NET. Niemals benutzt, also weiß ich nicht, ob sie in diesem Szenario funktionieren werden. Ich muss nicht nach Synonymen suchen und meine App hat keine Zugriffsrechte für das Dateisystem (also keine Indexdatei).
Jeder Rat ist willkommen.
Kann nicht, DB ist nicht meine Kontrolle. Ich muss den Produktkatalog beim Programmstart in den Speicher laden. –
Nun, tun Sie definitiv nicht Ihre eigene Implementierung der oben genannten Algorithmen. Hast du so etwas probiert? http://www.codedigest.com/CodeDigest/52-Search-in-Generic-List-T--in-C-.aspx –