1
22
23 package com.liferay.portal.search;
24
25 import com.liferay.portal.kernel.messaging.DestinationNames;
26 import com.liferay.portal.kernel.messaging.MessageBusUtil;
27 import com.liferay.portal.kernel.search.Hits;
28 import com.liferay.portal.kernel.search.IndexSearcher;
29 import com.liferay.portal.kernel.search.Query;
30 import com.liferay.portal.kernel.search.SearchException;
31 import com.liferay.portal.kernel.search.Sort;
32 import com.liferay.portal.kernel.search.messaging.SearchRequest;
33
34
40 public class IndexSearcherImpl implements IndexSearcher {
41
42 public Hits search(long companyId, Query query, int start, int end)
43 throws SearchException {
44
45 return search(companyId, query, null, start, end);
46 }
47
48 public Hits search(
49 long companyId, Query query, Sort[] sorts, int start, int end)
50 throws SearchException {
51
52 try {
53 SearchRequest searchRequest = new SearchRequest();
54
55 searchRequest.setCommand(SearchRequest.COMMAND_SEARCH);
56 searchRequest.setCompanyId(companyId);
57 searchRequest.setQuery(query);
58 searchRequest.setSorts(sorts);
59 searchRequest.setStart(start);
60 searchRequest.setEnd(end);
61
62 Hits hits = (Hits)MessageBusUtil.sendSynchronousMessage(
63 DestinationNames.SEARCH_READER, searchRequest);
64
65 return hits;
66 }
67 catch (Exception e) {
68 throw new SearchException(e);
69 }
70 }
71
72 }