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