isn't an array_intersect_key quiet inefficient as we get 500 suggestions and usually only need the first 7 matches?