This is the bulk of the computation for the real-time-search. Once this is implemented, we have a basic MVP.