List of usage examples for com.liferay.portal.kernel.search SearchContext SearchContext
SearchContext
From source file:jorgediazest.indexchecker.model.IndexCheckerModel.java
License:Open Source License
public SearchContext getIndexSearchContext(long companyId) { SearchContext searchContext = new SearchContext(); searchContext.setCompanyId(companyId); searchContext.setEntryClassNames(new String[] { this.getClassName() }); return searchContext; }
From source file:jorgediazest.indexchecker.model.IndexCheckerModelQuery.java
License:Open Source License
public SearchContext getIndexSearchContext(long companyId) { SearchContext searchContext = new SearchContext(); searchContext.setCompanyId(companyId); searchContext.setEntryClassNames(new String[] { getModel().getClassName() }); return searchContext; }
From source file:org.fit.portlet.service.service.impl.InserFitxaPersonalLocalServiceImpl.java
License:Open Source License
private Hits searchFitxaPersonalHits(long companyId, long groupId, long[] organizationIds, String searchText, long tecnicReferent, long codiProjecte, long serveiSocial, int start, int end, String orderByCol, String orderByType) {//from ww w. j a va2 s . c om try { String searchEngineId = SearchEngineUtil.getDefaultSearchEngineId(); SearchEngine searchEngine = SearchEngineUtil.getSearchEngine(searchEngineId); BooleanQueryFactory booleanQueryFactory = searchEngine.getBooleanQueryFactory(); BooleanQuery query = booleanQueryFactory.create(); // Context query query.addRequiredTerm(Field.COMPANY_ID, companyId); query.addRequiredTerm(Field.CLASS_NAME_ID, InserFitxaPersonal.class.getName()); if (groupId > -1) { query.addRequiredTerm(Field.GROUP_ID, groupId); } if (Validator.isNotNull(organizationIds)) { BooleanQuery organizationQuery = booleanQueryFactory.create(); if (organizationIds.length > 1 && organizationIds[0] == -2) { BooleanQuery q = booleanQueryFactory.create(); SearchContext searchContext = new SearchContext(); TermRangeQuery oq = TermRangeQueryFactoryUtil.create(searchContext, Field.ORGANIZATION_ID, "-1", "0", true, false); q.add(oq, BooleanClauseOccur.SHOULD); // L'usuari vol veure tots els que estan sense localitzaci query.add(q, BooleanClauseOccur.MUST); } else { for (long idorg : organizationIds) { if (idorg > -1) { organizationQuery.addTerm(Field.ORGANIZATION_ID, idorg); } } } if (organizationQuery.hasClauses()) { query.add(organizationQuery, BooleanClauseOccur.MUST); } } if (Validator.isNotNull(searchText)) { BooleanQuery searchTextQuery = booleanQueryFactory.create(); searchTextQuery.addExactTerm(GestioPersonesIndexConstants.NUM_EXPEDIENT, searchText); searchTextQuery.addExactTerm(GestioPersonesIndexConstants.DNI, searchText); searchTextQuery.addTerm(Field.DESCRIPTION, searchText); searchTextQuery.addTerm(Field.TITLE, searchText); searchTextQuery.addTerm(GestioPersonesIndexConstants.TECNIC_REFERENT, searchText); searchTextQuery.addTerm(GestioPersonesIndexConstants.OBSERVACIONS, searchText); searchTextQuery.addTerm(GestioPersonesIndexConstants.SEGUIMENT_ITINERARI, searchText); searchTextQuery.addTerm(GestioPersonesIndexConstants.SEGUIMENT_ITINERARI, searchText); query.add(searchTextQuery, BooleanClauseOccur.MUST); } // Cerca avanada if (tecnicReferent > -1) { query.addRequiredTerm(GestioPersonesIndexConstants.TECNIC_REFERENT_ID, tecnicReferent); } if (codiProjecte > -1) { query.addRequiredTerm(GestioPersonesIndexConstants.CODI_PROJECTE_ID, codiProjecte); } if (serveiSocial > -1) { query.addRequiredTerm(GestioPersonesIndexConstants.SERVEI_SOCIAL_ID, serveiSocial); } Sort sort = new Sort(); sort.setReverse(false); if (Validator.isNotNull(orderByCol)) { int type = getType(orderByCol); sort.setType(type); sort.setFieldName(orderByCol); if (Validator.isNotNull(orderByType)) { if (orderByType.equalsIgnoreCase("desc")) { sort.setReverse(true); } } } log.info(query.toString() + " " + sort.toString()); Hits search = SearchEngineUtil.search(searchEngineId, companyId, query, sort, start, end); return search; } catch (SearchException e) { log.error(e); } catch (ParseException e) { log.error(e); } return null; }