Updated with fixed and changes suggested by JM and Roberto.
Extended with the on going research and references to use Elasticsearch