HeadlinesBriefing favicon HeadlinesBriefing.com

TIN: Volltextsuche-Erweiterung für Postgres GA

Hacker News •
×

Eines der Postgres-Features, das unsere Kunden am häufigsten anfordern, ist die Volltextsuche. Heute freuen wir uns, TIN anzukündigen: eine schnelle, funktionsreiche, zuverlässige Volltextsuche-Erweiterung für Postgres. TIN steht für "Text INdex", und das ist genau das, was es tut.

TIN ist sofort als GA-Release für alle Postgres- und Neki-Datenbanken verfügbar. Probieren Sie es aus: CREATE INDEX an_index_name ON table_name USING tin(text_column_name); SELECT * FROM table_name WHERE text_column_name ==> 'some words'. Wir haben TIN entwickelt, weil wir glauben, dass ein guter Textindex unterstützen sollte: Boolesche Ausdrücke, Phrasenabfragen und Spannenabfragen.

Unscharfe, Platzhalter- und reguläre-Ausdruck-Übereinstimmung für Terme. Groß-/Kleinschreibungs- und Akzent-Folding. COUNT(*)-Abfragen und BM25-bewertete Top-k-Abfragen.

Ein guter Textindex in Postgres muss all diese Anforderungen unterstützen und gleichzeitig Joins, komplexe WHERE-Klauseln über Volltext und andere Spaltentypen, kontinuierliche Updates, Replikation, Backups und korrekte Transaktionssichtbarkeit verarbeiten. Obwohl es bereits mindestens drei Textsuch-Indizes für Postgres gibt, erfüllt keiner alle diese Anforderungen. TIN tut es.

TIN ist auch wirklich atemberaubend schnell. Wir haben Benchmarks durchgeführt, um die Leistung für all die oben genannten Anwendungsfälle und mehr zu bewerten. Wir testeten Workloads mit Konjunktions-, Disjunktions- und Phrasenabfragen sowie einer Mischung aus allen dreien.

Solche, die Dokumente zählen, oder solche, die die Top-k nach BM25-Score anfordern. Mit und ohne Clients, die gleichzeitig mit der Benchmark-Abfrage-Workload neue Daten in den Index schreiben. Wir haben TIN an einer Vielzahl von Textkorpora gemessen: ganz Wikipedia, eine Sammlung von Reddit-Kommentaren mit insgesamt 2,3 TB, und eine gemischte Workload, die wir einfach "pile" nennen, mit 797 GB Open-Access-Forschungsarbeiten, Rechtsdokumenten, Public-Domain-Büchern und Enron-E-Mails.

Die Benchmark-Ergebnisse, die wir in diesem Artikel teilen, stammen aus einem Export von Fragen und Antworten von Stack Exchange: ein 85 GB großes Korpus mit 150 Millionen Dokumenten.