Live data from Hacker News

Optimizing Top K in Postgres

paradedb.com

1–10 of 26 posts

Re: Optimizing Top K in Postgres

#6
Maybe I'm wrong, but for this query:

SELECT * FROM benchmark_logs WHERE severity this index

CREATE INDEX ON benchmark_logs (severity, timestamp);

cannot be used as proposed: "Postgres can jump directly to the portion of the tree matching severity Postgres with this index can walk to a part of the tree with severity < 3, but timestamps are sorted only for the same severity.

Re: Optimizing Top K in Postgres

#8
post #6

Maybe I'm wrong, but for this query: SELECT * FROM benchmark_logs WHERE severity this index CREATE INDEX ON benchmark_logs (severity, timestamp); cannot be used as proposed: "Postgres can jump directly to the portion of the tree matching severity Postgres with this index can walk to a part of the tree with severity < 3, but timestamps are sorted only for the same severity.

If severity is a low cardinality enum, it still seems acceptable

Re: Optimizing Top K in Postgres

#9
Lucene really does feel like magic sometimes. It was designed expressly to solve the top K problem at hyper scale. It's incredibly mature technology. You can go from zero to a billion documents without thinking too much about anything other than the amount of mass storage you have available.

Every time I've used Lucene I have combined it with a SQL provider. It's not necessarily about one or the other. The FTS facilities within the various SQL providers are convenient, but not as capable by comparison. I don't think mixing these into the same thing makes sense. They are two very different animals that are better joined by way of the document ids.

Post reply on HN