In this paper, a two-stage complexity reduction technique is implemented for a fingerprinting-based indoor positioning system. Several computation reduction techniques are applied during the offline and online phases of fingerprinting. Specifically, dimensionality reduction algorithms, clustering techniques and fast search strategies are integrated to achieve an ultimate reduction in the computational requirements of fingerprinting. The computational cost of fingerprinting is first reduced by restricting the location fingerprints to signal strength values received from informative access points (APs). Afterwards, clustering techniques are employed to speed up the online search for the target best match. Finally, selective matching between the target RSS and the pre-stored fingerprints is proposed to reduce the computational cost even further. In particular, this paper studies different dimensionality reduction methods and chooses the method that minimizes the positioning error. Moreover, a hybrid search solution of clustering and fast search strategies is proposed to minimize the search operations to find a user position in the radio map.