Frage

Wir haben eine Web-Anwendung, die Benutzer Dokumente hochladen können, ihre eigenen Dokumente erstellen, und so weiter. Hochgeladene Dateien werden auf Amazon S3 gespeichert, erstellt Informationen werden in einer MySQL-Datenbank gespeichert. Was ich suche ist eine Art Suchmaschine, wo ich sie alle unsere Textdokumente füttern, die jeweils mit einer eindeutigen ID, und es baut einen Index oder was auch immer. Später kann ich es gibt Abfragen suchen, und es wird die am besten passenden Dokumente herausziehen (über ihre ID), zusammen mit Textauszügen entsprechen.

Im Grunde wollen wir unseren Benutzer ermöglichen, durch ihre Repository von hochgeladenen Materialien zu suchen, zusammen mit allem, was anderen Benutzer als öffentlich markiert haben. Die Lösung sollte auf einem Standard-Linux-Server läuft, und im Idealfall wäre es Open-Source sein, aber ich werde auch bezahlt Lösungen in Betracht ziehen, wenn sie nicht unverschämt günstig.

Bisher habe ich drei potenzielle Kandidaten gefunden:

  1. MySQL Volltextsuche - einige Berichte ich habe gelesen, dass es sehr langsam
  2. Apache Lucene - leider in Java geschrieben, aber ich werde verwenden es, wenn ich muss. Angeblich soll schnell
  3. Sphinx - scheint nicht so populär zu sein, im Idealfall, was Lösung Ich werde finden viele Community-Support.

Bitte lassen Sie mich wissen, ob es noch andere gute Entscheidungen, die ich übersehen habe, oder wenn Sie Erfahrungen mit einem der oben genannten haben.

War es hilfreich?

Lösung

Hier finden Sie aktuelle Solr . Es basiert auf Lucene, es ist also sehr schnell, und es ist wirklich einfach, von jeder Plattform zu verwenden.

Andere Tipps

Sphinx können Ihre Überlegung wert sein, wie es auch mit mehreren gemeinsamen RDMS (insbesondere MySQL) funktioniert

Es gibt auch Xapian , die schnell und ist sehr anpassbar.

Es hat Unterstützung für benutzerdefinierte Indexer eines auf Indexdaten erlauben, die nicht in einer Datenbank gespeichert werden, die für Ihre Dokumente gespeichert auf S3 nützlich sein könnten.

Ich stelle mir vor, dass Google eine Lösung haben, die Ihren Bedürfnissen entspricht. Starten Sie hier: Google Enterprise

Es gibt ein Ruby Port von Lucene genannt " Ferret ". Neben der Ruby-API können Sie an der zugrunde liegenden C-Implementierung erhalten genannte „cFerret“.

Lucene ist sehr gut. Und obwohl es ursprünglich in Java geschrieben wurde gibt es eine PHP-Implementierung http: / /framework.zend.com/manual/en/zend.search.lucene.html

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