List of usage examples for com.liferay.portal.kernel.search SearchContext setSearchEngineId
public void setSearchEngineId(String searchEngineId)
From source file:com.liferay.document.library.repository.cmis.search.BaseCmisSearchQueryBuilderTest.java
License:Open Source License
protected SearchContext getSearchContext() { SearchContext searchContext = new SearchContext(); searchContext.setSearchEngineId(SearchEngineHelper.GENERIC_ENGINE_ID); QueryConfig queryConfig = searchContext.getQueryConfig(); queryConfig.setScoreEnabled(true);//from w ww .j a va 2s.c om return searchContext; }
From source file:com.liferay.mail.util.AccountIndexer.java
License:Open Source License
@Override protected void doDelete(Account account) throws Exception { SearchContext searchContext = new SearchContext(); searchContext.setCompanyId(account.getCompanyId()); searchContext.setEnd(QueryUtil.ALL_POS); searchContext.setSearchEngineId(getSearchEngineId()); searchContext.setSorts(SortFactoryUtil.getDefaultSorts()); searchContext.setStart(QueryUtil.ALL_POS); BooleanQuery booleanQuery = new BooleanQueryImpl(); booleanQuery.addRequiredTerm(Field.ENTRY_CLASS_NAME, CLASS_NAME); booleanQuery.addRequiredTerm("accountId", account.getAccountId()); Hits hits = IndexSearcherHelperUtil.search(searchContext, booleanQuery); List<String> uids = new ArrayList<>(hits.getLength()); for (int i = 0; i < hits.getLength(); i++) { Document document = hits.doc(i); uids.add(document.get(Field.UID)); }/* w ww. j a v a 2 s .co m*/ IndexWriterHelperUtil.deleteDocuments(getSearchEngineId(), account.getCompanyId(), uids, isCommitImmediately()); }
From source file:com.liferay.mail.util.FolderIndexer.java
License:Open Source License
@Override protected void doDelete(Folder folder) throws Exception { SearchContext searchContext = new SearchContext(); searchContext.setCompanyId(folder.getCompanyId()); searchContext.setEnd(QueryUtil.ALL_POS); searchContext.setSearchEngineId(getSearchEngineId()); searchContext.setSorts(SortFactoryUtil.getDefaultSorts()); searchContext.setStart(QueryUtil.ALL_POS); BooleanQuery booleanQuery = new BooleanQueryImpl(); booleanQuery.addRequiredTerm(Field.ENTRY_CLASS_NAME, CLASS_NAME); booleanQuery.addRequiredTerm("folderId", folder.getFolderId()); Hits hits = IndexSearcherHelperUtil.search(searchContext, booleanQuery); List<String> uids = new ArrayList<>(hits.getLength()); for (int i = 0; i < hits.getLength(); i++) { Document document = hits.doc(i); uids.add(document.get(Field.UID)); }/* w w w .j ava 2 s . c o m*/ IndexWriterHelperUtil.deleteDocuments(getSearchEngineId(), folder.getCompanyId(), uids, isCommitImmediately()); }
From source file:com.liferay.mail.util.MessageIndexer.java
License:Open Source License
@Override protected void doDelete(Object obj) throws Exception { SearchContext searchContext = new SearchContext(); searchContext.setSearchEngineId(getSearchEngineId()); if (obj instanceof Account) { Account account = (Account) obj; searchContext.setCompanyId(account.getCompanyId()); searchContext.setEnd(QueryUtil.ALL_POS); searchContext.setSorts(SortFactoryUtil.getDefaultSorts()); searchContext.setStart(QueryUtil.ALL_POS); BooleanQuery booleanQuery = BooleanQueryFactoryUtil.create(searchContext); booleanQuery.addRequiredTerm(Field.PORTLET_ID, PORTLET_ID); booleanQuery.addRequiredTerm("accountId", account.getAccountId()); Hits hits = SearchEngineUtil.search(searchContext, booleanQuery); List<String> uids = new ArrayList<String>(hits.getLength()); for (int i = 0; i < hits.getLength(); i++) { Document document = hits.doc(i); uids.add(document.get(Field.UID)); }/*from ww w.j a va2 s .c om*/ SearchEngineUtil.deleteDocuments(getSearchEngineId(), account.getCompanyId(), uids, isCommitImmediately()); } else if (obj instanceof Folder) { Folder folder = (Folder) obj; searchContext.setCompanyId(folder.getCompanyId()); searchContext.setEnd(QueryUtil.ALL_POS); searchContext.setSorts(SortFactoryUtil.getDefaultSorts()); searchContext.setStart(QueryUtil.ALL_POS); BooleanQuery booleanQuery = BooleanQueryFactoryUtil.create(searchContext); booleanQuery.addRequiredTerm(Field.PORTLET_ID, PORTLET_ID); booleanQuery.addRequiredTerm("folderId", folder.getFolderId()); Hits hits = SearchEngineUtil.search(searchContext, booleanQuery); List<String> uids = new ArrayList<String>(hits.getLength()); for (int i = 0; i < hits.getLength(); i++) { Document document = hits.doc(i); uids.add(document.get(Field.UID)); } SearchEngineUtil.deleteDocuments(getSearchEngineId(), folder.getCompanyId(), uids, isCommitImmediately()); } else if (obj instanceof Message) { Message message = (Message) obj; Document document = new DocumentImpl(); document.addUID(PORTLET_ID, message.getMessageId()); SearchEngineUtil.deleteDocument(getSearchEngineId(), message.getCompanyId(), document.get(Field.UID), isCommitImmediately()); } }
From source file:com.liferay.message.boards.internal.search.MBThreadIndexer.java
License:Open Source License
@Override protected void doDelete(MBThread mbThread) throws Exception { SearchContext searchContext = new SearchContext(); searchContext.setSearchEngineId(getSearchEngineId()); deleteDocument(mbThread.getCompanyId(), mbThread.getThreadId()); }
From source file:com.liferay.portlet.documentlibrary.store.DLStoreImpl.java
License:Open Source License
public Hits search(long companyId, long userId, String portletId, long groupId, long[] repositoryIds, String keywords, int start, int end) throws SystemException { try {/*from ww w . j a v a2 s . c om*/ SearchContext searchContext = new SearchContext(); searchContext.setCompanyId(companyId); searchContext.setEnd(end); searchContext.setEntryClassNames(new String[] { DLFileEntryConstants.getClassName() }); searchContext.setGroupIds(new long[] { groupId }); Indexer indexer = IndexerRegistryUtil.getIndexer(DLFileEntryConstants.getClassName()); searchContext.setSearchEngineId(indexer.getSearchEngineId()); searchContext.setStart(start); searchContext.setUserId(userId); BooleanQuery contextQuery = BooleanQueryFactoryUtil.create(searchContext); contextQuery.addRequiredTerm(Field.PORTLET_ID, portletId); if (groupId > 0) { Group group = groupLocalService.getGroup(groupId); if (group.isLayout()) { contextQuery.addRequiredTerm(Field.SCOPE_GROUP_ID, groupId); groupId = group.getParentGroupId(); } contextQuery.addRequiredTerm(Field.GROUP_ID, groupId); } if ((repositoryIds != null) && (repositoryIds.length > 0)) { BooleanQuery repositoryIdsQuery = BooleanQueryFactoryUtil.create(searchContext); for (long repositoryId : repositoryIds) { try { if (userId > 0) { PermissionChecker permissionChecker = PermissionThreadLocal.getPermissionChecker(); DLFolderPermission.check(permissionChecker, groupId, repositoryId, ActionKeys.VIEW); } if (repositoryId == DLFolderConstants.DEFAULT_PARENT_FOLDER_ID) { repositoryId = groupId; } TermQuery termQuery = TermQueryFactoryUtil.create(searchContext, "repositoryId", repositoryId); repositoryIdsQuery.add(termQuery, BooleanClauseOccur.SHOULD); } catch (Exception e) { } } contextQuery.add(repositoryIdsQuery, BooleanClauseOccur.MUST); } BooleanQuery searchQuery = BooleanQueryFactoryUtil.create(searchContext); searchQuery.addTerms(_KEYWORDS_FIELDS, keywords); BooleanQuery fullQuery = BooleanQueryFactoryUtil.create(searchContext); fullQuery.add(contextQuery, BooleanClauseOccur.MUST); if (searchQuery.clauses().size() > 0) { fullQuery.add(searchQuery, BooleanClauseOccur.MUST); } return SearchEngineUtil.search(searchContext, fullQuery); } catch (Exception e) { throw new SystemException(e); } }
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 . jav a 2 s . c om*/ 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.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;// w ww . j av a 2 s . c om 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)); } }