k-NN match for object recognition
Generally, one wouldn't gain much from such parameter tuning or workarounds.
The accuracy heavily depends on the image features that you are using, together with KNN algorithm. If you are using an approximate ANN, try using FLANN. In FLANN, increasing the number of trees and the iterations contribute to the accuracy. 

To improve the matching accuracy, enhancements over descriptors are also possible. Zisserman proposes RootSift, which is very easy to implement and enhances SIFT with an intuitive modification:

http://www.robots.ox.ac.uk/~vgg/publications/2012/Arandjelovic12/arandjelovic12.pdf

There are also other good details in this paper.



Other than that, if you are already using BoW, you end up with sparse features. For a more meaningful representation, try VLAD (http://www.vlfeat.org/api/vlad.html). Yet, a quantization through a vocabulary tree as in Nister and Stewinius (http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.61.9520) would help. 

Imposing spatial neighborhoods isn't straightforward, but can be done. However, I recommend you to first try the aforementioned methods with post processing (geometric verification). A nice one is found here: http://web.stanford.edu/~sstsai/selected_papers/2010_GeometricReranking.pdf

Cheers,