Spring AI 2.0.1 sends num_candidates = (int)(1.5 * topK) = 15 for topK=10 (ElasticsearchVectorStore bytecode: ldc2_w 1.5d, dmul, d2i) same index, same 100 queries, raw _search with the num_candidates varied: num_candidates recall@10 p50 ms 15 0.472 5.0 50 0.477 3.9 100 0.479 3.6 500 0.484 3.8