Search with pager
Once the index can be searched easily. Wrapper for the results:
Code:
public class implements Serializable (ResultsWrapper
totalResults private Integer;
TotalPages private Integer;
private List results;
Long executionTime private;
private List; paginator;
...
Search method CompassServiceImpl class:
Code:
ResultsWrapper public search (String query, int page, int itemsPage)
throws pageCompass CompassException (int = 0; if (page> 0)
(pageCompass = page - 1;) CompassSearchHelper searchHelper = new CompassSearchHelper (compass, itemsPage)
results = searchHelper CompassSearchResults.search (new CompassSearchCommand (query, pageCompass));
List itemList = new ArrayList ();
for (CompassHit hit: results. getHits ())
(T item = (T) hit. getData (); itemList. add (item) ;)
ResultsWrapper ResultsWrapper wrapper = new () wrapper. setTotalResults (results. getTotalHits ());
wrapper. setResults (itemList) if (results. getPage ()! = null & & results. getPage (). length> 0) ( wrapper. setTotalPages (results. getPage (). length);
List paginator = generatePaginator (results. getPage (). length, page);
wrapper. setPaginator (paginator);) return wrapper;
Perform a search page on the Lucene index. An example of use would be to search "java conference" on a list of related news about the world java. Indexing listData given that (a) a list of news:
Code:
CompassService CompassServiceImpl compassService = new ();
compassService. Index (listData ());
Search for the string "java conference":
Code:
Results = compassService ResultsWrapper.Search ("java conference", 1, 10);
System. Out. Println (results);
Bookmarks