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.491 4.5 50 0.489 3.9 100 0.490 3.8 500 0.490 4.0