Frage

Gibt es gute Beispiele (Websites oder Bücher) um, wie eine Volltextsuche in F # bauen?

War es hilfreich?

Lösung

Wollen Sie diese Texte selbst schreiben? Oder benötigen Sie einfach die Funktionalität?

Wenn Sie die Funktionalität benötigen, eine eingebettete / In-Memory-Datenbank mit Volltextsuche Unterstützung kann den Trick. Da es .Net ist, würde ich SQLite ADO.Net Provider als Open-Source-Anwärter empfehlen. Es ist wirklich gut (Unterstützung LINQ vor jedem anderen Anbieter gibt, Entwurfszeitunterstützung, etc.), und die FTS-Unterstützung ist unter sehr aktiver Entwicklung. Ich denke, Google auf, dass funktioniert. Es gibt auch VistaDB Database . Ich verwende, dass vor allem jetzt. Es sollte FTS Unterstützung. Völlig .Net, die es einige Integration Vorteile gibt.

Wenn Sie tun müssen, um es selbst beim Check-out Bücher auf Information Retrieval . Ich habe ein paar gelesen, aber wissen nichts, was sich von der Masse abhebt. Amazon kann es helfen.

Andere Tipps

Ich habe eine Suchmaschine in F # geschrieben mit nur wenigen Zeilen Code. Sie können über das in meinem Plakat lesen und Zugriff auf die vollständige Umsetzung in

Stefan Savev Homepage

Die Grundidee ist in dem unten stehenden Code gezeigt, aber mehr Erklärungen nötig sind, um tatsächlich als der Code selbst. Die sind auf meiner Website zur Verfügung.

Dieser Code erstellt den Index auf der Festplatte aus einer Sammlung von Dokumenten. Die Indexierung erfolgt im externen Speicher durchgeführt.

1.   let create_postings in_name tmp_dir out_name =
2.     let process_doc (doc_id, doc_text) = 
3.         doc_text |> tokenize |> stopword |> stem 
4a.        |> List.count
4b.        |> ListExt.map(fun (word, tf) -> (word, (doc_id, tf)) 
5.     in_name 
6.     |> as_lines
7.     |> Seq.map_concat extract_docs 
8.     |> Seq.map_concat process_doc
9a.    |> External.group_by (fun (w, _) -> w) 
9b.       (fun (_, docid_and_tf) -> docid_and_tf) 
9c.       (fun lst -> (List.length lst, lst)) 
9d.       tmp_dir
9e.       (External.ElemDesc())
10.    |> output out_name
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top