Algorithmus zur Suche Seite
-
23-09-2019 - |
Frage
Ich bin erstellen einer Seite suchen, wo finden wir das Produkt, indem Sie den text.
ex:Bringt in der Nacht.
Meine Anfrage bringen die Aufzeichnungen enthalten mindestens Wort von diesem.
Anforderungen:1.Erste Zeile enthält den Datensatz mit dem angegebenen Satz.2.zweite Reihe neben den passenden.3.Dritte Zeile nächsten passenden ...etc
Wie Sie diese erreichen.Gibt es irgendeinen Algorithmus für diese.Es wird hilfreicher sein, wenn jemand, teilen Sie Ihre Idee.
Edit:
Beispiel Suche, Um:
1. Brings on the night
2. Whoever Brings the Night
3. Night Baseball Brings
4. Night ride
5. Night Round
6. Brings flower
Geetha
Lösung
Haben Sie versucht, voll-text-Suche?http://msdn.microsoft.com/en-us/library/ms142583.aspx
Andere Tipps
Aufbau einer Suchmaschine ist ein sehr Komplexes Unterfangen, Umgang mit Mehrdeutigkeit der menschlichen Sprache, Tippfehler und vieles mehr.Sie sollten versuchen, zu verwenden, was mit Ihrem Datenbank-engine.SQL Server und SQLite haben Sie aus dem Karton und die meisten anderen Datenbanken haben wahrscheinlich ähnliche Funktionen.Diese Motoren sind nicht besonders gut, aber Sie sollte ausreichen für einfache Szenarien.Für mehr ernsthafte Arbeit, versuchen, Lucene, die kommt in verschiedenen Varianten für unterschiedliche Programmiersprachen.
Als eine wirklich einfache Lösung, die Sie verwenden könnte in sql WIE operator.Statt
select object_name from table_name where parameter = irgendwas
Sie würden tun
select object_name from table_name where parameter WIE etwas
Dies funktioniert möglicherweise für sehr einfache Szenarien
Einige Hinweise
- versuchen Sie Ihr RDBMS Volltextsuche oder nach Umständen zu forschen Lösungen wie Lucene/Solr
- es gibt Implementierungen Distanz (Levenshtein) in SQL, für nicht so trivial hand made ranking
- n-Gramm (bigrame, Trigramme) viel tun können, finden Sie beispielsweise alle Optionen in postgres interne Suche im Vergleich zu mysql oder MSSQL
Interne RDBMS sucht (postgres vielleicht eine Ausnahme) haben in der Regel zu wenig Optionen, die Umsetzung Ihrer eigenen ist in der Regel zu hart, oder RDBMS, das würde nicht lassen Sie es tun (effizient).
In Java müssen Sie Lucene
Es gibt auch einen port für die es in php (Zend Lucene).
Sie haben auch eine Portierung auf C# Lucene .NET
Nur durch eine änderung Ihrer db-Modelle, die Sie können integrieren es in die Suchmaschine ein.
Haben Sie einen Blick.Ich habe Lucene in der Vergangenheit und es ist immer sehr effektiv und effizient.