2010-12-14 35 views
4

Ich arbeite an einer Website, die im Moment nur wenig Verkehr hat. Es wird mit Ruby on Rails erstellt und läuft auf der Cloud-Plattform von Heroku.Was sind gute Cloud- oder Drittanbieter-Suchanbieter?

Als Teil der Website habe ich eine große Anzahl von Seiten, die durchsuchbar sein müssen, von denen jede nur eine kleine Menge an Informationen enthält. Stellen Sie sich eine Tabelle mit Artikeln vor, bei der für jeden Artikel nur der Titel indexiert werden muss. Es gibt jedoch rund 8 Millionen Artikel.

Postgres Suche: Als ich zum ersten Mal auf diesem zu arbeiten begann, lief ich Postgres Volltextsuche, aber anscheinend ist es nicht genug, um für die Suche optimiert so viele indizierte Artikel zu handhaben, und lief Hund langsam. Ich hatte einige Suchen, bei denen die Verbindung zur Datenbank unterbrochen wurde und mehr als 30 Sekunden für den Abschluss benötigt wurden.

Websolr: zog ich dann auf, was war dann der einzige Heroku Add-on für Cloud-Suche, Websolr von OneMoreCloud. Leider berechnen sie nach der Anzahl der indizierten Einträge, was für eine Website wie meine, die keinen Traffic, aber eine große Anzahl von zu indexierenden Elementen hat, schrecklich ist, und ich hatte eine Leistung, die schlechter war als die Postgresuche, die kostenlos war. Während der Postgresuche würde Timeout auftreten und die Site herunterfahren, Websolr würde eine leere oder unvollständige Ergebnismenge zurückgeben, wodurch die Zuschauer denken, dass das Ergebnis nicht in der Datenbank enthalten ist.

Indextank: Jetzt hat Heroku einen weiteren Cloud-Suchanbieter hinzugefügt, Index Tank, der noch in der Betaversion ist. Während die Beta dafür kostenlos ist, zögere ich, sie zu versuchen, denn für ihren Nicht-Heroku-Service, der nicht frei ist, hat ihr höchster Plan nur 2 Millionen Dokumente, während sie bereits ein Auge kostet, das 500 Dollar pro Monat kostet.

Google Website-Suche: Eine Option, die ich derzeit suche, ist die Umstellung auf Google Site Search. Die Google-Suchmarke gibt mir das Vertrauen, dass ich nicht auf die Performance-Probleme stoßen werde, die ich in der Vergangenheit hatte. Auch ihre Preisgestaltung ist äußerst vernünftig und wird durch den Verkehr festgesetzt. Auf der anderen Seite ist es nicht wirklich eine integrierte Suche, da es sich nicht in die Datenbank einklinkt, sondern sich nur Webseiten anschaut. Es gibt also keine Möglichkeit, eine Suche anzugeben, bei der nur Artikel zurückgegeben werden in der Kategorie Technische Artikel oder so ähnlich. Selbst wenn ich das Aussehen der Suchergebnisse anpassen möchte, scheint es ein bisschen mühsam zu sein, dass ich die Suchergebnisse in XML analysieren und dann verwenden müsste, um meine Suchergebnisseite zu generieren, und wenn ich Metadaten anpassen möchte In der Anzeige müsste ich die analysierten Suchergebnisse verwenden, um alle Zeilen der Ergebnisse in meiner Datenbank nachzuschlagen.

Gibt es gute Möglichkeiten für Cloud- oder Drittanbieter-Suchanbieter, die Sie der Stackoverflow-Community empfehlen würden?

+0

, warum Sie Ihren eigenen Index nicht verwenden, z Lucene? Sie können genau das, was Sie wollen, auf Feldbasis (z. B. Titel, Inhalt) indizieren und es ist einfach einzurichten. Es gibt verschiedene Ruby-Ports und/oder Schnittstellen, siehe diese Frage: http://stackoverflow.com/questions/1318604/ruby-alternative-for-lucene –

+0

@Richard Im schlimmsten Fall würde ich das tun, aber ich würde mag es wirklich, es zu vermeiden.Einen eigenen Index über Lucene zu erstellen, würde bedeuten, einen Server einzurichten, wo ich momentan keinen habe, den ich selbst verwalten müsste. Auch wenn ich Solr/Lucene auf meinem lokalen System zum Testen von Websolr laufen ließ, gab es eine Menge von Konfigurationsproblemen, die ich vermeiden wollte, wie Speicherfehler, selbst wenn ich viel Speicher hatte. –

+1

@Richard: Lucene mag leicht zu erreichen sein, aber es ist eine Menge Arbeit, um es zu optimieren. Ich würde diesen Schritt nicht leicht nehmen. – skaffman

Antwort

1

Nachschlagen http://www.searchblox.com/. Eine andere Alternative, obwohl kein Cloud-Anbieter, wäre die Verwendung der Elastic-Suche . Es ist sehr einfach einzurichten und zu verwenden und funktioniert in der Regel OOTB.

Auch hier ist eine perspektivische vom Schöpfer von ES selbst es zu anderen Anbietern zu vergleichen: ElasticSearch, Sphinx, Lucene, Solr, Xapian. Which fits for which usage?

+0

Ist SearchBlox eine cloudbasierte Suche? Scheint eine lokale benutzerdefinierte Installation von Lucene zu sein –

Verwandte Themen