Example usage for com.liferay.portal.kernel.search SearchContext SearchContext

List of usage examples for com.liferay.portal.kernel.search SearchContext SearchContext

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.search SearchContext SearchContext.

Prototype

SearchContext

Source Link

Usage

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;
}