search: frontend logic for indexed structural search
Created by: rvantonder
Adds the frontend logic to call structural search over the set of repos.
- Zoekt returns matches that satisfy constant strings in the structural search pattern
- From these matches, build a map of
repo => filtered file list
- Only call searcher over those repos in the map and add the filtered file list, per repo, to the
IncludePatterns
for structural search
Test plan: Added a test to check that the structural search path filters (mocked) indexed files only.
Notes: the filtered file list could potentially be large, both for allocating and for sending over the wire. We have options but I'm not addressing those in this PR, and would first like to get the end-to-end codepath.