I am in the "we're definitely using Elasticsearch and now we just have to figure out exactly how to do this with Elasticsearch" phase of a project for a bootstrapped start-up.
Use Case: I have a single job description and I need to search for people that have skills mentioned in that job description. I want to sort the results by relevance as measured by "how much each person's skills overlap/map the job description."
Data:
- The job description and some tags/keywords generated/extrapolated for that job description by an external source before indexing.
- Each person's job experience text (from their resume) and some tags/keywords generated/extrapolated from their job experience before indexing.
Another way of describing my use case is that it's the "other side" of a single person searching a database of jobs for specific keywords. I usually think of "search" as "search for some specific keywords in a bunch of documents." But my use case is more like "search for this one document (job desc) against a bunch of keywords (many people's experience data/tags)."
Perhaps I only index the "generated/extrapolated keywords" for both the job description and each person's experience? Then it's more of a "take the 24 keywords we found in this job description and find all the people who have some keywords that match" situation? We can limit/tune the number of keywords we pre-generate for the job description and each person's experience, which might make that more feasible.