The log shows "Limit" is 100 when I only need 5

Description

I noticed a confusing behavior with the `limit` parameter:
When I set `limit` below 100 (e.g., 5, 10, 50), the Weaviate shows `Limit:100` in the logs.

However, the real number of the returned result is correct.

{"action":"vector_search_completed","build_git_commit":"4aacef3","build_go_version":"go1.24.11","build_image_tag":"v1.33.9","build_wv_version":"1.33.9","level":"debug","msg":"vector search query completed in 19.386477ms","params":{"Filters":null,"ClassName":"PtAi_rag_39f89a2b_d7b3_7dd6_f375_5193ba020f15_knowledge_69377f89c7805984be22d4bc","Pagination":{"Offset":0,"Limit":100,"Autocut":-1},"Cursor":null,"Sort":null,"Properties":[...

I’m a little worried could Weaviate be internally fetching all 100 objects and wasting compute?

When I set `limit > 100`, the console shows the correct number.

{"action":"vector_search_completed","build_git_commit":"4aacef3","build_go_version":"go1.24.11","build_image_tag":"v1.33.9","build_wv_version":"1.33.9","level":"debug","msg":"vector search query completed in 2.083548ms","params":{"Filters":null,"ClassName":"PtAi_rag_39f89a2b_d7b3_7dd6_f375_5193ba020f15_knowledge_693a1c537b641166bc2ec3f8","Pagination":{"Offset":0,"Limit":150,"Autocut":-1},"Cursor":null,"Sort":null,"Properties":
[...

Server Setup Information

  • Weaviate Server Version: 1.33.9
  • Deployment Method: k8s
  • Multi Node? Number of Running Nodes: Single
  • Client Language and Version: python 3.11.2
  • Multitenancy?: No

Any additional Information

hi @Charlie_Chen !!

This is expected.

The Limit: 100 in the log represents the internal search limit used during vector search execution, not the final number of results returned.

Your application would only receive 5 objects as requested. This internal buffering is a common pattern in vector databases to ensure search quality.

Let me know if this helps!