Frage

Ich muss eine Suchmaschine implementieren. Ich habe also ein Wörterbuch, das eine Hash -Tabelle ist und es besteht Wörter. Außerdem habe ich einige Texte, ich muss alle Texte durchgehen und die Textnummer und den Ort jedes Wortes in den Texten in die Posting -Datei einfügen.

Jedes Mal, wenn ich ein Wort vorkommt und dieses Wort bereits in der Posting -Datei existiert, muss ich ein weiteres Vorkommen dieses Wortes hinzufügen, was bedeutet, dass die Zeile aktualisiert wird, in der sich das Wort in der Posting -Datei befindet. Aber weil die Posting -Datei so etwas aussieht:

word1: 1(2,4,5) 4(66,42,21)
word2: 1(3,66) 6(12,19)

Ich kann in Zeile 1 nicht etwas Neues schreiben, da dies Zeile 2 beeinflusst, wie ich verstehe.

Die Frage ist also, wie ich es tun kann? Kann ich vielleicht irgendwie irgendwie, anstatt nur Strings in die Datei zu schreiben, eine Datenstruktur schreiben? Wie ein Hash -Tisch? Für jedes Wort gibt es in der Posting -Datei eine Hash -Tabelle. Wenn ich sehen werde, dass das Wort bereits in der Posting -Datei vorhanden ist, werde ich das Hashtable lesen, aktualisieren und in die Datei umschreiben.

Oder gibt es etwas Besseres?

Danke im Voraus,

Greg

War es hilfreich?

Lösung

Haben Sie darüber nachgedacht, XML zu verwenden, um dies zu tun? Eine einfache Struktur wie:

<searchkeys>
   <key name="word1">
      <text id="1">2,4,5</text>
      <text id="4">66,42,21</text>
   </key>
   <key name="word2">
      <text id="1">3,66</text>
      <text id="6">12,19</text>
   </key>
</searchkeys>

Du kannst den ... benutzen Xmldocument, XMLReader, XMLWriter, usw. Klassen, um die Dateien zu manipulieren und von dort aus schicker zu werden.

Wenn dies viele Daten enthalten wird, können Sie dafür eine DB verwenden (Zugriff, MS SQL (Express oder Standard), Sqllit, Mysql usw.).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top