{"ID":2922099,"CreatedAt":"2026-06-02T02:42:49.606572591Z","UpdatedAt":"2026-06-02T13:54:14.569670787Z","DeletedAt":null,"paper_url":"https://arxiv.org/abs/2606.00734","arxiv_id":"2606.00734","title":"EMA: Approximate Nearest Neighbor Search with General Attribute Filtering and Dynamic Updates","abstract":"Filtering Approximate Nearest Neighbor (FANN) search is a critical and emerging task for strengthening the query capability of vector databases, supporting applications such as recommendation systems, retrieval-augmented generation (RAG), and agent memory. However, most existing methods are limited to range or label filtering, often incurring unacceptable index construction time and memory overhead. Predicate-agnostic approaches further struggle to handle a wide range of predicate selectivities effectively. In this paper, we propose EMA, a filtering ANN algorithm that supports multi-predicate queries over mixed numerical and categorical attributes, and efficient dynamic updates. EMA introduces Markers as compact summaries attached to graph edges, providing conservative predicate- and geometric-aware guidance with zero false negatives at the Marker level. During query processing, EMA performs Marker-augmented joint search with a bounded edge recovery mechanism, enabling efficient filtering while preserving graph navigability. Extensive experiments demonstrate that EMA achieves 1.68x--12.25x speedup over state-of-the-art general filtering ANN methods across diverse workloads.","short_abstract":"Filtering Approximate Nearest Neighbor (FANN) search is a critical and emerging task for strengthening the query capability of vector databases, supporting applications such as recommendation systems, retrieval-augmented generation (RAG), and agent memory. However, most existing methods are limited to range or label fi...","url_abs":"https://arxiv.org/abs/2606.00734","url_pdf":"https://arxiv.org/pdf/2606.00734v1","authors":"[\"Mocheng Li\",\"Baotong Lu\",\"James Cheng\",\"Chenhao Ma\"]","published":"2026-05-30T13:56:00Z","proceeding":"cs.DB","tasks":"[\"cs.DB\"]","methods":"[\"RAG\"]","has_code":false}
