List of usage examples for com.liferay.portal.kernel.search SearchContext getQueryConfig
public QueryConfig getQueryConfig()
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); }