PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Gibt es einen Grund, die integrierte Volltextsuche von PostgreSQL in Heroku nicht zu verwenden?

Edit, 2016 – Warum nicht beides?

Wenn Sie sich für Postgres vs. Lucene interessieren, warum nicht beides? Sehen Sie sich ZomboDB an Erweiterung für Postgres, die Elasticsearch als erstklassigen Indextyp integriert. Noch ein ziemlich frühes Projekt, aber es sieht für mich sehr vielversprechend aus.

(Technisch nicht auf Heroku verfügbar, aber dennoch einen Blick wert.)

Offenlegung:Ich bin Mitbegründer von Websolr und Bonsai Heroku-Add-Ons, daher ist meine Perspektive ein wenig auf Lucene ausgerichtet.

Meine Lektüre zur Postgres-Volltextsuche ist, dass sie für einfache Anwendungsfälle ziemlich solide ist, aber es gibt eine Reihe von Gründen, warum Lucene (und damit Solr und ElasticSearch) sowohl in Bezug auf Leistung als auch Funktionalität überlegen ist.

Für den Anfang, jpountz bietet eine wirklich hervorragende technische Antwort auf die Frage, Warum ist Solr so viel schneller als Postgres? Es lohnt sich, es ein paar Mal durchzulesen, um es wirklich zu verdauen.

Ich habe auch eine aktuelle RailsCast-Episode Vergleich der relativen Vor- und Nachteile der Postgres-Volltextsuche mit Solr. Lassen Sie mich das hier zusammenfassen:

Pragmatische Vorteile für Postgres

  • Verwenden Sie einen bestehenden Dienst, den Sie bereits ausführen, wieder, anstatt etwas anderes einzurichten und zu warten (oder dafür zu bezahlen).
  • Dem fantastisch langsamen SQL LIKE weit überlegen Betreiber.
  • Weniger Aufwand, Daten zu synchronisieren, da sie sich alle in derselben Datenbank befinden – keine Integration auf Anwendungsebene mit einer externen Datendienst-API.

Vorteile gegenüber Solr (oder ElasticSearch)

Aus dem Kopf, in keiner bestimmten Reihenfolge …

Ich denke eindeutig, dass eine dedizierte Suchmaschine auf Basis von Lucene hier die bessere Option ist. Im Grunde kann man sich Lucene als de facto das Open-Source-Repository für Suchexpertise vorstellen.

Aber wenn Ihre einzige andere Option das LIKE ist Operator, dann ist die Postgres-Volltextsuche definitiv ein Gewinn.