Frage

Ich habe Nutch- und Lucene -Setup zum Crawlen und Index einige Websites und ich möchte eine .NET -Website anstelle der JSP -Website verwenden, die mit Nutch geliefert wird.

Kann jemand einige Lösungen empfehlen?

Ich habe Lösungen gesehen, bei denen auf dem Indexserver eine App ausgeführt wurde, zu der die .NET -Site eine Remoting verwendete.

Geschwindigkeit ist offensichtlich eine Überlegung. Kann dies noch gut funktionieren?

Bearbeiten: Könnte Nhibernate.search dafür funktionieren?

Bearbeiten: Am Ende haben wir uns mit Solr -Index -Servern mit unserer ASP.NET -Site mit dem verwendeten Solrnet Bibliothek.

War es hilfreich?

Lösung

Anstatt Lucene zu verwenden, könnten Sie verwenden Solr mit Nutsch zu indexieren (siehe hier), dann können Sie mithilfe einer der beiden verfügbaren Bibliotheken sehr einfach eine Verbindung zu SolR herstellen: Solrsharp und Solrnet.

Andere Tipps

Wenn aus den anderen Antworten nicht klar ist, verwenden Lucene.net und Lucene (JAVA) das gleiche Indexformat, sodass Sie Ihre vorhandenen (Java-basierten) Mechanismen für weiterhin verwenden können Indizierung, und verwenden Sie dann Lucene.net in Ihrer .NET -Webanwendung, um zu Anfrage Der Index.

Aus Die Website von Lucene.net Inkubator:

Zusätzlich zum API- und Klassenport für C# wird der Algorithmus von Java Lucene auf C# Lucene portiert. Dies bedeutet, dass ein mit Java Lucene erstellter Index ist Hin und Her kompatibelmit dem C# Lucene; Sowohl beim Lesen, Schreiben und Aktualisieren. In der Tat Ein Lucene -Index kann gleichzeitig mit Java Lucene und C# Lucene -Prozessen gesucht und aktualisiert werden

Ich arbeite auch daran.

http://today.java.net/pub/a/today/2006/02/16/inTroduction-to-nutch-2.html

Es scheint, dass Sie Ihre Anfrage an Nutch einreichen und die RSS -Ergebnisse zurückerhalten können.

bearbeiten:

Habe dies heute in einem Windows -Formular als Proof of Concept gearbeitet. Zwei Textboxen (Searchurl und Abfrage), eine für die Server -URL und eine für die Abfrage. Eine Datagridansicht.

private void Form1_Load(object sender, EventArgs e)
        {
            searchurl.Text = "http://localhost:8080/opensearch?query=";


    }

    private void search_Click(object sender, EventArgs e)
    {
        string uri;

        uri = searchurl.Text.ToString() + query.Text.ToString();
        Console.WriteLine(uri);

        XmlDocument myXMLDocument = new XmlDocument();

        myXMLDocument.Load(uri);

        DataSet ds = new DataSet();

        ds.ReadXml(new XmlNodeReader(myXMLDocument));

        SearchResultsGridView1.DataSource = ds;
        SearchResultsGridView1.DataMember = "item";

    }

Ich war hier, indem ich nach einem Vergleich zwischen Solrnet und Solrsharp gesucht habe, dachte nur, ich würde hier meine Eindrücke verlassen.

Es scheint, als wäre Solarsharp ein totes Projekt (nicht lange nicht aktualisiert). Die einzige Option ist also Solarnet.

Ich hoffe, das wird jemandem helfen, ich hätte der akzeptierten Antwort einen Kommentar hinterlassen, aber ich habe noch nicht genug Ruf :)

Anstatt Solr zu verwenden, habe ich einen Java -basierten Indexer geschrieben, der in einem Cron -Job ausgeführt wird, und einen Java -basierten Webdienst für Abfragen. Ich habe eigentlich keine Seiten so sehr indexiert wie verschiedene Datenarten, die die .NET -Site zum Erstellen der Seiten verwendet. Es gibt also tatsächlich 4 verschiedene Indizes mit einer anderen Dokumentstruktur, die alle in ungefähr genauso abgefragt werden kann (z. B. Benutzer, Beiträge, Nachrichten, Fotos).

Durch die Definition eines XSD für die Web -Service -Antworten konnte ich sowohl Klassen in .NET als auch Java generieren, um eine Darstellung der Dokumente zu speichern. Der Webdienst führt im Grunde genommen die Abfrage im rechten Index aus und füllt die Antwort XML aus den Hits aus. Der .NET -Client analysiert das in Objekte. Es gibt auch eine JSON -Schnittstelle für jedes Client -Seite JavaScript.

Warum nicht von Java Lucene zur Dot -Net -Version wechseln? Sicher, es ist eine Investition, aber es ist hauptsächlich eine Klassenersatzübung. Das Letzte, was Sie brauchen, sind mehr Ebenen, die keinen anderen Wert hinzufügen, als nur Kleber zu sein. Weniger Kleber und mehr Sachen sind das, was Sie anstreben sollten ...

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