Can Elasticsearch Help In My Setup?

I'm pretty new to Elasticsearch and have tried my best to find whether it can help in my setup. I'm currently developing a web app (addon) on the top of WordPress. The app allows users to create resume as custom post type and store all the resume data into multiple custom fields.

To cut the long story short, I'm currently storing all my resume data as a JSON blob. So each row has resume ID and a big JSON blob that has all the resume related information viz. multiple skills and ratings, multiple education, multiple degrees etc. So, a typical entry looks like this:

[meta_id] [post_id] [meta_key] [meta_value]
-------------+-----------+----------------+-----------------
[800] [33] [resumeMetaData] [{"resumeSalutation":"male","resumeFullName":"Bill Gates","resumeEmail":"billg@msft.com","resumeMobile":"+444353245532","resumeBirthday":"01 January 1955","resumeCity":.....]

I wish to make some of my data inside the jSON blob searchable and I'm wondering if Elasticsearch can help? This app is still under development so I can make changes to the way data is stored and queried.

Typical search case:

How many resumes are there with location = New York, Skills = Java with at least 5 years of experience.

Definitely!

Thanks @dadoonet- Could you tell me how exactly? I mean, how will elasticsearch handle my queries? All I know is that it will create its own index; but how will it extract the data from my JSON blobs?

It won't extract data but if you can send the JSON docs to Elasticsearch you will get some extra power ! :slight_smile:

Thanks. I'm however looking for more information on how it all works out. Not an in-depth explanation; but an overview is all I need. Thanks!

I often use a resume as a good example of a rich document which particularly benefits from using elasticsearch's "nested" feature [1] for representing content.
Without a proper nested data model a search for a person with 5 year's of Java experience could match someone with 1 year of Java and 5 of Python. This is what we call the "cross-matching" problem that happens if you put complex data into the overly-simplistic model offered by most search engines [2].

Not all search problems require the "nested" feature but a resume is certainly a good example.

[1] https://www.elastic.co/guide/en/elasticsearch/reference/2.3/nested.html#_using_literal_nested_literal_fields_for_arrays_of_objects
[2] http://www.slideshare.net/MarkHarwood/proposal-for-nested-document-support-in-lucene

While not about resumes but about product search the following description might give you an idea of some of the things Elasticsearch can do for you:

http://project-a.github.io/on-site-search-design-patterns-for-e-commerce/

Hope this helps,
Isabel