diff --git a/src/main/java/org/upsmf/grievance/service/impl/SearchServiceImpl.java b/src/main/java/org/upsmf/grievance/service/impl/SearchServiceImpl.java
index 7c4f1333db126437e3af3021b46fd72e902109e4..9f2894db679457bcf20f7bdde40530d83ec1d6ff 100644
--- a/src/main/java/org/upsmf/grievance/service/impl/SearchServiceImpl.java
+++ b/src/main/java/org/upsmf/grievance/service/impl/SearchServiceImpl.java
@@ -20,6 +20,9 @@ import org.springframework.data.domain.Sort;
 import org.springframework.stereotype.Service;
 import org.upsmf.grievance.config.EsConfig;
 import org.upsmf.grievance.dto.SearchRequest;
+import org.upsmf.grievance.enums.RequesterType;
+import org.upsmf.grievance.enums.TicketPriority;
+import org.upsmf.grievance.enums.TicketStatus;
 import org.upsmf.grievance.model.es.Ticket;
 import org.upsmf.grievance.model.reponse.TicketResponse;
 import org.upsmf.grievance.repository.es.TicketRepository;
@@ -136,7 +139,105 @@ public class SearchServiceImpl implements SearchService {
     private static List<Object> getDocumentsFromHits(SearchHits hits) {
         List<Object> documents = new ArrayList<Object>();
         for (SearchHit hit : hits) {
-            documents.add(hit.getSourceAsMap());
+            Ticket esTicket = new Ticket();
+            for (Map.Entry entry : hit.getSourceAsMap().entrySet()) {
+                String key = (String) entry.getKey();
+                switch (key) {
+                    case "ticket_id":
+                        Long longValue = ((Number) entry.getValue()).longValue();
+                        esTicket.setTicketId(longValue);
+                        break;
+                    case "requester_first_name":
+                        esTicket.setFirstName((String) entry.getValue());
+                        break;
+                    case "requester_last_name":
+                        esTicket.setLastName((String) entry.getValue());
+                        break;
+                    case "requester_phone":
+                        esTicket.setPhone((String) entry.getValue());
+                        break;
+                    case "requester_email":
+                        esTicket.setEmail((String) entry.getValue());
+                        break;
+                    case "requester_type":
+                        for (RequesterType enumValue : RequesterType.values()) {
+                            if (enumValue.name().equals(entry.getValue().toString())) {
+                                esTicket.setRequesterType(enumValue);
+                                break;
+                            }
+                        }
+                        break;
+                    case "assigned_to_id":
+                        longValue = ((Number) entry.getValue()).longValue();
+                        esTicket.setAssignedToId(longValue);
+                        break;
+                    case "assigned_to_name":
+                        esTicket.setAssignedToName((String) entry.getValue());
+                        break;
+                    case "description":
+                        esTicket.setDescription((String) entry.getValue());
+                        break;
+                    case "is_junk":
+                        esTicket.setJunk((Boolean) entry.getValue());
+                        break;
+                    case "created_date":
+                        esTicket.setCreatedDate((String) entry.getValue());
+                        break;
+                    case "updated_date":
+                        esTicket.setUpdatedDate((String) entry.getValue());
+                        break;
+                    case "created_date_ts":
+                        longValue = ((Number) entry.getValue()).longValue();
+                        esTicket.setCreatedDateTS(longValue);
+                        break;
+                    case "updated_date_ts":
+                        longValue = ((Number) entry.getValue()).longValue();
+                        esTicket.setUpdatedDateTS(longValue);
+                        break;
+                    case "last_updated_by":
+                        longValue = ((Number) entry.getValue()).longValue();
+                        esTicket.setLastUpdatedBy(longValue);
+                        break;
+                    case "is_escalated":
+                        esTicket.setEscalated((Boolean) entry.getValue());
+                        break;
+                    case "escalated_date":
+                        esTicket.setEscalatedDate((String) entry.getValue());
+                        break;
+                    case "escalated_date_ts":
+                        longValue = ((Number) entry.getValue()).longValue();
+                        esTicket.setEscalatedDateTS(longValue);
+                        break;
+                    case "escalated_to":
+                        longValue = ((Number) entry.getValue()).longValue();
+                        esTicket.setEscalatedTo(longValue);
+                        break;
+                    case "status":
+                        for (TicketStatus enumValue : TicketStatus.values()) {
+                            if (enumValue.name().equals(entry.getValue().toString())) {
+                                esTicket.setStatus(enumValue);
+                                break;
+                            }
+                        }
+                        break;
+                    case "request_type":
+                        esTicket.setRequestType((String) entry.getValue());
+                        break;
+                    case "priority":
+                        for (TicketPriority enumValue : TicketPriority.values()) {
+                            if (enumValue.name().equals(entry.getValue().toString())) {
+                                esTicket.setPriority(enumValue);
+                                break;
+                            }
+                        }
+                        break;
+                    case "escalated_by":
+                        longValue = ((Number) entry.getValue()).longValue();
+                        esTicket.setEscalatedBy(longValue);
+                        break;
+                }
+            }
+            documents.add(esTicket);
         }
         return documents;
     }