I have job candidates and job listings. I am trying to determine which candidates are qualified for a particular listing. We already have every listing indexed in ES. The two ways that I see that I could do this are:
- Index every candidate in ES, and then build a query based on the parameters of the listing to search/filter down on qualified candidates, and return those as results.
- Use the percolate feature to create a percolate query for each candidate, and then find out which candidates match by running the listing's data against the candidate percolator index.
Which is more efficient and performant at scale (millions of records)? Not fully understanding how the percolator is implemented (I haven't found any articles that actually explain implementation), my concern is that using the percolator, I'd actually be running one query per candidate per listing, which would be very inefficient.