Pinecone does this, FYI: https://www.pinecone.io/docs/metadata-filtering/
And you're not alone... Lots of people want this, and lots of people can't get it with ES.
And you're not alone... Lots of people want this, and lots of people can't get it with ES.
> I wonder if there actually some fundamental reason they won't be able to do so.
This is where it gets interesting. I don't think there's anything a company with ES's resources can't do if they really want to. However...
ES's vector search is based on Lucene 9.0, which in turn uses the HNSW vector index. HNSW is shaky when it comes to CRUD updates (namely deletions), and flat out does not support metadata filtering: https://issues.apache.org/jira/browse/LUCENE-10040
Even with ES resources, it's a fundamentally hard problem. In the best case it's going to take a while to implement.