List of usage examples for com.liferay.portal.kernel.search SearchContext SearchContext
SearchContext
From source file:com.liferay.portlet.messageboards.util.MBIndexer.java
License:Open Source License
@Override protected void doDelete(Object obj) throws Exception { SearchContext searchContext = new SearchContext(); searchContext.setSearchEngineId(SearchEngineUtil.SYSTEM_ENGINE_ID); if (obj instanceof MBCategory) { MBCategory category = (MBCategory) obj; BooleanQuery booleanQuery = BooleanQueryFactoryUtil.create(searchContext); booleanQuery.addRequiredTerm(Field.PORTLET_ID, PORTLET_ID); booleanQuery.addRequiredTerm("categoryId", category.getCategoryId()); Hits hits = SearchEngineUtil.search(category.getCompanyId(), booleanQuery, QueryUtil.ALL_POS, QueryUtil.ALL_POS);//w w w. j av a 2s . c o m for (int i = 0; i < hits.getLength(); i++) { Document document = hits.doc(i); SearchEngineUtil.deleteDocument(category.getCompanyId(), document.get(Field.UID)); } } else if (obj instanceof MBMessage) { MBMessage message = (MBMessage) obj; Document document = new DocumentImpl(); document.addUID(PORTLET_ID, message.getMessageId()); SearchEngineUtil.deleteDocument(message.getCompanyId(), document.get(Field.UID)); } else if (obj instanceof MBThread) { MBThread thread = (MBThread) obj; MBMessage message = MBMessageLocalServiceUtil.getMessage(thread.getRootMessageId()); BooleanQuery booleanQuery = BooleanQueryFactoryUtil.create(searchContext); booleanQuery.addRequiredTerm(Field.PORTLET_ID, PORTLET_ID); booleanQuery.addRequiredTerm("threadId", thread.getThreadId()); Hits hits = SearchEngineUtil.search(message.getCompanyId(), booleanQuery, QueryUtil.ALL_POS, QueryUtil.ALL_POS); for (int i = 0; i < hits.getLength(); i++) { Document document = hits.doc(i); SearchEngineUtil.deleteDocument(message.getCompanyId(), document.get(Field.UID)); } } }
From source file:com.liferay.portlet.sample.service.impl.SearchLocalServiceImpl.java
License:Open Source License
/** * NOTE FOR DEVELOPERS://from w ww .j ava2 s . c o m * * Never reference this interface directly. Always use {@link com.liferay.portlet.sample.service.SearchLocalServiceUtil} to access the search local service. */ public List<JournalArticle> searchWC(String structureKey, String fieldName, Serializable fieldValue, ThemeDisplay themeDisplay) { List<JournalArticle> articles = new ArrayList<JournalArticle>(); try { SearchContext searchContext = new SearchContext(); int start = QueryUtil.ALL_POS; int end = QueryUtil.ALL_POS; LinkedHashMap<String, Object> params = new LinkedHashMap<String, Object>(); Map<String, Serializable> searchByFields = new LinkedHashMap<String, Serializable>(); searchByFields.put(fieldName, fieldValue); params.put(SampleConstants.STRUCTURE_FIELDS, searchByFields); params.put(SampleConstants.STRUCTURE_KEY, structureKey); params.put(SampleConstants.STRUCTURE_GROUP_ID, themeDisplay.getScopeGroupId()); Map<String, Serializable> attributes = new HashMap<String, Serializable>(); attributes.put("params", params); searchContext.setAttributes(attributes); searchContext.setAndSearch(true); searchContext.setCompanyId(themeDisplay.getCompanyId()); searchContext.setGroupIds(new long[] { PortalUtil.getSiteGroupId(themeDisplay.getScopeGroupId()) }); searchContext.setAttribute("paginationType", "none"); QueryConfig queryConfig = new QueryConfig(); queryConfig.setHighlightEnabled(false); queryConfig.setScoreEnabled(false); searchContext.setQueryConfig(queryConfig); searchContext.setStart(start); searchContext.setEnd(end); Indexer indexer = IndexerRegistryUtil.nullSafeGetIndexer(JournalArticle.class); articles = getJournalArticles(indexer.search(searchContext)); } catch (Exception e) { _log.error(e); } return articles; }
From source file:com.liferay.portlet.wiki.util.WikiIndexer.java
License:Open Source License
@Override protected void doDelete(Object obj) throws Exception { SearchContext searchContext = new SearchContext(); searchContext.setSearchEngineId(SearchEngineUtil.SYSTEM_ENGINE_ID); if (obj instanceof Object[]) { Object[] array = (Object[]) obj; long companyId = (Long) array[0]; long nodeId = (Long) array[1]; String title = (String) array[2]; Document document = new DocumentImpl(); document.addUID(PORTLET_ID, nodeId, title); SearchEngineUtil.deleteDocument(companyId, document.get(Field.UID)); } else if (obj instanceof WikiNode) { WikiNode node = (WikiNode) obj;/*from w w w . j a v a 2s. c o m*/ BooleanQuery booleanQuery = BooleanQueryFactoryUtil.create(searchContext); booleanQuery.addRequiredTerm(Field.PORTLET_ID, PORTLET_ID); booleanQuery.addRequiredTerm("nodeId", node.getNodeId()); Hits hits = SearchEngineUtil.search(node.getCompanyId(), booleanQuery, QueryUtil.ALL_POS, QueryUtil.ALL_POS); for (int i = 0; i < hits.getLength(); i++) { Document document = hits.doc(i); SearchEngineUtil.deleteDocument(node.getCompanyId(), document.get(Field.UID)); } } else if (obj instanceof WikiPage) { WikiPage page = (WikiPage) obj; Document document = new DocumentImpl(); document.addUID(PORTLET_ID, page.getNodeId(), page.getTitle()); SearchEngineUtil.deleteDocument(page.getCompanyId(), document.get(Field.UID)); } }
From source file:com.liferay.trash.service.impl.TrashEntryLocalServiceImpl.java
License:Open Source License
protected SearchContext buildSearchContext(long companyId, long groupId, long userId, String keywords, int start, int end, Sort sort) { SearchContext searchContext = new SearchContext(); searchContext.setCompanyId(companyId); searchContext.setEnd(end);/*from ww w. java2s .c o m*/ searchContext.setKeywords(keywords); searchContext.setGroupIds(new long[] { groupId }); if (sort != null) { searchContext.setSorts(sort); } searchContext.setStart(start); searchContext.setUserId(userId); QueryConfig queryConfig = searchContext.getQueryConfig(); queryConfig.setHighlightEnabled(false); queryConfig.setScoreEnabled(false); return searchContext; }
From source file:com.liferay.user.groups.admin.web.internal.search.test.UserGroupIndexerTest.java
License:Open Source License
protected SearchContext getSearchContext(long companyId) { SearchContext searchContext = new SearchContext(); searchContext.setCompanyId(companyId); return searchContext; }
From source file:com.liferay.users.admin.indexer.test.OrganizationIndexerTest.java
License:Open Source License
protected Hits search(String keywords) throws Exception { SearchContext searchContext = new SearchContext(); searchContext.setCompanyId(TestPropsValues.getCompanyId()); searchContext.setEntryClassNames(new String[] { Organization.class.getName() }); searchContext.setKeywords(keywords); QueryConfig queryConfig = searchContext.getQueryConfig(); queryConfig.setSelectedFieldNames(Field.NAME); return _indexer.search(searchContext); }
From source file:com.liferay.users.admin.indexer.test.UserIndexerTest.java
License:Open Source License
protected SearchContext getSearchContext() throws Exception { SearchContext searchContext = new SearchContext(); searchContext.setCompanyId(TestPropsValues.getCompanyId()); searchContext.setGroupIds(new long[] { TestPropsValues.getGroupId() }); return searchContext; }
From source file:com.portlet.sample.service.impl.SampleEntryLocalServiceImpl.java
License:Open Source License
@Override public Hits search(long companyId, String title, String content, int start, int end) throws PortalException, SystemException { Indexer indexer = IndexerRegistryUtil.getIndexer(SampleEntry.class.getName()); SearchContext searchContext = new SearchContext(); searchContext.setCompanyId(companyId); searchContext.setStart(start);/* ww w. j av a2s . co m*/ searchContext.setEnd(end); searchContext.setAttribute(Field.TITLE, title); searchContext.setAttribute(Field.CONTENT, content); return indexer.search(searchContext); }
From source file:com.slayer.service.impl.LMSBookLocalServiceImpl.java
License:Open Source License
public Hits getHits(String keyword, long companyId, long groupId) { // 1. Preparing a Search Context SearchContext searchContext = new SearchContext(); searchContext.setCompanyId(companyId); String[] CLASS_NAMES = { LMSBook.class.getName() }; searchContext.setEntryClassNames(CLASS_NAMES); long[] groupIds = { groupId }; searchContext.setGroupIds(groupIds); // 2. Preparing a Query to search BooleanQuery searchQuery = BooleanQueryFactoryUtil.create(searchContext); String[] terms = { Field.TITLE, "author" }; try {/* w w w . j av a 2 s.c o m*/ searchQuery.addTerms(terms, keyword); } catch (ParseException e) { e.printStackTrace(); } // 3. Firing the query to get hits Hits hits = null; try { hits = SearchEngineUtil.search(searchContext, searchQuery); } catch (SearchException e) { e.printStackTrace(); } return hits; }
From source file:com.slayer.service.impl.LMSBookLocalServiceImpl.java
License:Open Source License
protected Hits getHits(long companyId, long groupId, String bookTitle, String author, boolean andSearch) throws SystemException { // 1. Preparing the Search Context SearchContext searchContext = new SearchContext(); searchContext.setAndSearch(andSearch); searchContext.setCompanyId(companyId); long[] groupIds = { groupId }; searchContext.setGroupIds(groupIds); BooleanQuery searchQuery = BooleanQueryFactoryUtil.create(searchContext); appendSearchTerm(Field.TITLE, bookTitle, searchContext.isAndSearch(), searchQuery); appendSearchTerm("author", author, searchContext.isAndSearch(), searchQuery); // 2. Firing the query and getting the hits Hits hits = null;/*from w w w . jav a2 s .c om*/ try { hits = SearchEngineUtil.search(searchContext, searchQuery); } catch (SearchException e) { e.printStackTrace(); } return hits; }