All of these RAG solutions are implementing it with vector search, but I'm not sure it's the be all end all solution for this.
I have tried many techniques and seen others try many different techniques. I think the hardest part is selecting the RIGHT technique. This is why it is somewhat easy to deploy a RAG pipeline but very hard to optimize one. It's hard to understand why it's failing and the global implications of design choices you make in your ingestion / embedding process.
I’d suggest RAG might perform better if it worked somewhat like that, the chunks for embeddings should be paragraph and sentence aware, and ideally should be tagged with any existing TOC or natural sections/headings that exist in the document. This approach would allow a retrieval logic that provides cohesive information, like an entire chapter or at least 3 paragraphs prior and 3 after the matched vector.
There are a lot of 'policy' choices here, so I've been curious how to automatically decide. The KG, GNN, and IR literature seems to have a lot of techniques relating to this, so been very non-obvious to me
like what? adding metadata to vectors isn't by any means new, as other reply says that's just "hybrid search"
Perhaps it’s not that different than other solutions have but my impression was their payload system was more flexible and extensible than competing options, especially with the speed that Qdrant delivers, so for example pg_vector can leverage all of postgres capabilities but I don’t believe it can compete with Qdrant on vector specific problems.
This is when the relational nature of postgres really shines - you can even do in-mem calculations for distance.
You could put different categories in different shards though, resulting in the same effect.
You can also specify exact=true to do the same on any size, but this can get rather slow when your collection grows.
Disclaimer: I'm part of Qdrant.