It sounds like you are using a vector index right?
Since each document is a row, and the default top k is 2, then it is only retrieving 2 rows from your index to answer each query.
This is probably not what you intended.
The ideal approach is to use text2sql rather than indexing rows of data. Especially for highly numerical data.
https://gpt-index.readthedocs.io/en/stable/end_to_end_tutorials/structured_data/sql_guide.htmlIf you feel you still need similarity search on rows, you can use the sql join engine to combine the two approaches
https://gpt-index.readthedocs.io/en/stable/examples/query_engine/SQLJoinQueryEngine.html