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

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

Introduction

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

Prototype

public QueryConfig getQueryConfig() 

Source Link

Usage

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   ww  w .j  ava  2  s .  co m*/

    return searchContext;
}

From source file:com.liferay.document.library.repository.external.ExtRepositoryAdapter.java

License:Open Source License

@Override
public Hits search(SearchContext searchContext, Query query) throws SearchException {

    long startTime = System.currentTimeMillis();

    List<ExtRepositorySearchResult<?>> extRepositorySearchResults = null;

    try {//from   www . ja v a2  s. co m
        extRepositorySearchResults = _extRepository.search(searchContext, query,
                new ExtRepositoryQueryMapperImpl(this));
    } catch (PortalException | SystemException e) {
        throw new SearchException("Unable to perform search", e);
    }

    QueryConfig queryConfig = searchContext.getQueryConfig();

    List<Document> documents = new ArrayList<>();
    List<String> snippets = new ArrayList<>();
    List<Float> scores = new ArrayList<>();

    int total = 0;

    for (ExtRepositorySearchResult<?> extRepositorySearchResult : extRepositorySearchResults) {

        try {
            ExtRepositoryObjectAdapter<?> extRepositoryEntryAdapter = _toExtRepositoryObjectAdapter(
                    ExtRepositoryObjectAdapterType.OBJECT, extRepositorySearchResult.getObject());

            Document document = new DocumentImpl();

            document.addKeyword(Field.ENTRY_CLASS_NAME, extRepositoryEntryAdapter.getModelClassName());
            document.addKeyword(Field.ENTRY_CLASS_PK, extRepositoryEntryAdapter.getPrimaryKey());
            document.addKeyword(Field.TITLE, extRepositoryEntryAdapter.getName());

            documents.add(document);

            if (queryConfig.isScoreEnabled()) {
                scores.add(extRepositorySearchResult.getScore());
            } else {
                scores.add(1.0F);
            }

            snippets.add(extRepositorySearchResult.getSnippet());

            total++;
        } catch (PortalException | SystemException e) {
            if (_log.isWarnEnabled()) {
                _log.warn("Invalid entry returned from search", e);
            }
        }
    }

    float searchTime = (float) (System.currentTimeMillis() - startTime) / Time.SECOND;

    Hits hits = new HitsImpl();

    hits.setDocs(documents.toArray(new Document[documents.size()]));
    hits.setLength(total);
    hits.setQueryTerms(new String[0]);
    hits.setScores(ArrayUtil.toFloatArray(scores));
    hits.setSearchTime(searchTime);
    hits.setSnippets(snippets.toArray(new String[snippets.size()]));
    hits.setStart(startTime);

    return hits;
}

From source file:com.liferay.document.library.repository.search.internal.RepositorySearchQueryBuilderImpl.java

License:Open Source License

@Override
public BooleanQuery getFullQuery(SearchContext searchContext) throws SearchException {

    try {//  ww  w. j av a2 s  . c o m
        BooleanQuery contextQuery = new BooleanQueryImpl();

        addContext(contextQuery, searchContext);

        BooleanQuery searchQuery = new BooleanQueryImpl();

        addSearchKeywords(searchQuery, searchContext);

        BooleanQuery fullQuery = new BooleanQueryImpl();

        if (contextQuery.hasClauses()) {
            fullQuery.add(contextQuery, BooleanClauseOccur.MUST);
        }

        if (searchQuery.hasClauses()) {
            fullQuery.add(searchQuery, BooleanClauseOccur.MUST);
        }

        BooleanClause<Query>[] booleanClauses = searchContext.getBooleanClauses();

        if (booleanClauses != null) {
            for (BooleanClause<Query> booleanClause : booleanClauses) {
                fullQuery.add(booleanClause.getClause(), booleanClause.getBooleanClauseOccur());
            }
        }

        fullQuery.setQueryConfig(searchContext.getQueryConfig());

        return fullQuery;
    } catch (Exception e) {
        throw new SearchException(e);
    }
}

From source file:com.liferay.document.library.search.test.DLFileEntryIndexerLocalizedContentTest.java

License:Open Source License

private SearchContext _getSearchContext(String searchTerm, Locale locale, long groupId) throws Exception {

    SearchContext searchContext = SearchContextTestUtil.getSearchContext(groupId);

    searchContext.setKeywords(searchTerm);
    searchContext.setLocale(locale);/*  www.  j a  va  2 s  .  c om*/

    QueryConfig queryConfig = searchContext.getQueryConfig();

    queryConfig.setSelectedFieldNames(StringPool.STAR);

    return searchContext;
}

From source file:com.liferay.document.library.service.test.DLAppServiceTest.java

License:Open Source License

protected static void search(FileEntry fileEntry, String keywords, boolean expected) throws Exception {

    SearchContext searchContext = new SearchContext();

    searchContext.setAttribute("paginationType", "regular");
    searchContext.setCompanyId(fileEntry.getCompanyId());
    searchContext.setFolderIds(new long[] { fileEntry.getFolderId() });
    searchContext.setGroupIds(new long[] { fileEntry.getRepositoryId() });
    searchContext.setKeywords(keywords);

    QueryConfig queryConfig = searchContext.getQueryConfig();

    queryConfig.setHighlightEnabled(false);
    queryConfig.setScoreEnabled(false);//  ww  w . j  a  v  a 2s .c  o  m

    Indexer<DLFileEntry> indexer = IndexerRegistryUtil.getIndexer(DLFileEntryConstants.getClassName());

    Hits hits = indexer.search(searchContext);

    boolean found = false;

    for (Document document : hits.getDocs()) {
        long fileEntryId = GetterUtil.getLong(document.get(Field.ENTRY_CLASS_PK));

        if (fileEntryId == fileEntry.getFileEntryId()) {
            found = true;

            break;
        }
    }

    Assert.assertEquals(hits.toString(), expected, found);
}

From source file:com.liferay.journal.content.search.web.internal.display.context.JournalContentSearchDisplayContext.java

License:Open Source License

public Hits getHits() throws Exception {
    if (_hits != null) {
        return _hits;
    }/*from  w w w. ja va2  s.co m*/

    Indexer<JournalArticle> indexer = IndexerRegistryUtil.getIndexer(JournalArticle.class);

    SearchContext searchContext = SearchContextFactory.getInstance(_request);

    searchContext.setGroupIds(null);
    searchContext.setKeywords(getKeywords());

    QueryConfig queryConfig = searchContext.getQueryConfig();

    queryConfig.setHighlightEnabled(_journalContentSearchPortletInstanceConfiguration.enableHighlighting());

    _hits = indexer.search(searchContext);

    return _hits;
}

From source file:com.liferay.journal.search.test.JournalArticleIndexerLocalizedContentTest.java

License:Open Source License

private SearchContext _getSearchContext(String searchTerm, Locale locale) throws Exception {

    SearchContext searchContext = SearchContextTestUtil.getSearchContext(_group.getGroupId());

    searchContext.setKeywords(searchTerm);

    searchContext.setLocale(locale);//from w w w.  j  ava 2  s.c  o  m

    QueryConfig queryConfig = searchContext.getQueryConfig();

    queryConfig.setSelectedFieldNames(StringPool.STAR);

    return searchContext;
}

From source file:com.liferay.repository.external.ExtRepositoryAdapter.java

License:Open Source License

@Override
public Hits search(SearchContext searchContext, Query query) throws SearchException {

    long startTime = System.currentTimeMillis();

    List<ExtRepositorySearchResult<?>> extRepositorySearchResults = null;

    try {// w  w w  .j a v  a 2  s  .  co m
        extRepositorySearchResults = _extRepository.search(searchContext, query,
                new ExtRepositoryQueryMapperImpl(this));
    } catch (PortalException pe) {
        throw new SearchException("Unable to perform search", pe);
    } catch (SystemException se) {
        throw new SearchException("Unable to perform search", se);
    }

    QueryConfig queryConfig = searchContext.getQueryConfig();

    List<Document> documents = new ArrayList<Document>();
    List<String> snippets = new ArrayList<String>();
    List<Float> scores = new ArrayList<Float>();

    int total = 0;

    for (ExtRepositorySearchResult<?> extRepositorySearchResult : extRepositorySearchResults) {

        try {
            ExtRepositoryObjectAdapter<?> extRepositoryEntryAdapter = _toExtRepositoryObjectAdapter(
                    ExtRepositoryObjectAdapterType.OBJECT, extRepositorySearchResult.getObject());

            Document document = new DocumentImpl();

            document.addKeyword(Field.ENTRY_CLASS_NAME, extRepositoryEntryAdapter.getModelClassName());
            document.addKeyword(Field.ENTRY_CLASS_PK, extRepositoryEntryAdapter.getPrimaryKey());
            document.addKeyword(Field.TITLE, extRepositoryEntryAdapter.getName());

            documents.add(document);

            if (queryConfig.isScoreEnabled()) {
                scores.add(extRepositorySearchResult.getScore());
            } else {
                scores.add(1.0F);
            }

            snippets.add(extRepositorySearchResult.getSnippet());

            total++;
        } catch (SystemException se) {
            if (_log.isWarnEnabled()) {
                _log.warn("Invalid entry returned from search", se);
            }
        } catch (PortalException pe) {
            if (_log.isWarnEnabled()) {
                _log.warn("Invalid entry returned from search", pe);
            }
        }
    }

    float searchTime = (float) (System.currentTimeMillis() - startTime) / Time.SECOND;

    Hits hits = new HitsImpl();

    hits.setDocs(documents.toArray(new Document[documents.size()]));
    hits.setLength(total);
    hits.setQueryTerms(new String[0]);
    hits.setScores(ArrayUtil.toFloatArray(scores));
    hits.setSearchTime(searchTime);
    hits.setSnippets(snippets.toArray(new String[snippets.size()]));
    hits.setStart(startTime);

    return hits;
}

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  w  ww  .j av  a2  s . com
    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.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);
}