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.BaseCmisSearchQueryBuilder.java
License:Open Source License
@Override public String buildQuery(SearchContext searchContext, Query query) throws SearchException { StringBundler sb = new StringBundler(); sb.append("SELECT cmis:objectId"); QueryConfig queryConfig = searchContext.getQueryConfig(); if (queryConfig.isScoreEnabled()) { sb.append(", SCORE() AS HITS"); }/*from w w w . j a va2s. c o m*/ sb.append(" FROM cmis:document"); CMISDisjunction cmisDisjunction = new CMISDisjunction(); if (_log.isDebugEnabled()) { _log.debug("Repository query support " + queryConfig.getAttribute("capabilityQuery")); } if (!isSupportsOnlyFullText(queryConfig)) { traversePropertiesQuery(cmisDisjunction, query, queryConfig); } if (isSupportsFullText(queryConfig)) { CMISContainsExpression cmisContainsExpression = new CMISContainsExpression(); traverseContentQuery(cmisContainsExpression, query, queryConfig); if (!cmisContainsExpression.isEmpty()) { cmisDisjunction.add(cmisContainsExpression); } } if (!cmisDisjunction.isEmpty()) { sb.append(" WHERE "); sb.append(cmisDisjunction.toQueryFragment()); } Sort[] sorts = searchContext.getSorts(); if (queryConfig.isScoreEnabled() || ArrayUtil.isNotEmpty(sorts)) { sb.append(" ORDER BY "); } if (ArrayUtil.isNotEmpty(sorts)) { int i = 0; for (Sort sort : sorts) { String fieldName = sort.getFieldName(); if (!isSupportedField(fieldName)) { continue; } if (i > 0) { sb.append(", "); } sb.append(getCmisField(fieldName)); if (sort.isReverse()) { sb.append(" DESC"); } else { sb.append(" ASC"); } i++; } } else if (queryConfig.isScoreEnabled()) { sb.append("HITS DESC"); } if (_log.isDebugEnabled()) { _log.debug("CMIS query " + sb); } return sb.toString(); }
From source file:com.liferay.document.library.repository.cmis.search.BaseCmisSearchQueryBuilderTest.java
License:Open Source License
@Test public void testContainsCombinedSupportedQuery() throws Exception { SearchContext searchContext = getSearchContext(); searchContext.setKeywords("test"); QueryConfig queryConfig = searchContext.getQueryConfig(); queryConfig.setAttribute("capabilityQuery", CapabilityQuery.BOTHCOMBINED.value()); String cmisQuery = buildQuery(searchContext); assertQueryEquals("((cmis:name = 'test' OR cmis:createdBy = 'test') OR " + "CONTAINS('test'))", cmisQuery); }
From source file:com.liferay.document.library.repository.cmis.search.BaseCmisSearchQueryBuilderTest.java
License:Open Source License
@Test public void testContainsCombinedSupportedWildcardQuery() throws Exception { SearchContext searchContext = getSearchContext(); searchContext.setKeywords("test*.jpg"); QueryConfig queryConfig = searchContext.getQueryConfig(); queryConfig.setAttribute("capabilityQuery", CapabilityQuery.BOTHCOMBINED.value()); String cmisQuery = buildQuery(searchContext); assertQueryEquals("((cmis:name LIKE 'test%.jpg' OR cmis:createdBy LIKE " + "'test%.jpg') OR CONTAINS('(test AND .jpg)'))", cmisQuery); }
From source file:com.liferay.document.library.repository.cmis.search.BaseCmisSearchQueryBuilderTest.java
License:Open Source License
@Test public void testContainsOnlySupportedQuery() throws Exception { SearchContext searchContext = getSearchContext(); searchContext.setKeywords("test"); QueryConfig queryConfig = searchContext.getQueryConfig(); queryConfig.setAttribute("capabilityQuery", CapabilityQuery.FULLTEXTONLY.value()); String cmisQuery = buildQuery(searchContext); assertQueryEquals("CONTAINS('test')", cmisQuery); }
From source file:com.liferay.document.library.repository.cmis.search.BaseCmisSearchQueryBuilderTest.java
License:Open Source License
@Test public void testContainsOnlySupportedQueryMultipleKeywords() throws Exception { SearchContext searchContext = getSearchContext(); searchContext.setKeywords("test multiple"); QueryConfig queryConfig = searchContext.getQueryConfig(); queryConfig.setAttribute("capabilityQuery", CapabilityQuery.FULLTEXTONLY.value()); String cmisQuery = buildQuery(searchContext); assertQueryEquals("CONTAINS('(test OR multiple)')", cmisQuery); }
From source file:com.liferay.document.library.repository.cmis.search.BaseCmisSearchQueryBuilderTest.java
License:Open Source License
@Test public void testContainsOnlySupportedQueryWithConjunction() throws Exception { SearchContext searchContext = getSearchContext(); searchContext.setKeywords("+test +multiple"); QueryConfig queryConfig = searchContext.getQueryConfig(); queryConfig.setAttribute("capabilityQuery", CapabilityQuery.FULLTEXTONLY.value()); String cmisQuery = buildQuery(searchContext); assertQueryEquals("CONTAINS('(test multiple)')", cmisQuery); }
From source file:com.liferay.document.library.repository.cmis.search.BaseCmisSearchQueryBuilderTest.java
License:Open Source License
@Test public void testContainsOnlySupportedQueryWithNegation() throws Exception { SearchContext searchContext = getSearchContext(); searchContext.setKeywords("test -multiple"); QueryConfig queryConfig = searchContext.getQueryConfig(); queryConfig.setAttribute("capabilityQuery", CapabilityQuery.FULLTEXTONLY.value()); String cmisQuery = buildQuery(searchContext); assertQueryEquals("CONTAINS('(-multiple OR test)')", cmisQuery); }
From source file:com.liferay.document.library.repository.cmis.search.BaseCmisSearchQueryBuilderTest.java
License:Open Source License
@Test public void testContainsOnlySupportedQueryWithNegationPhrase() throws Exception { SearchContext searchContext = getSearchContext(); searchContext.setKeywords("test -\"multiple words\""); QueryConfig queryConfig = searchContext.getQueryConfig(); queryConfig.setAttribute("capabilityQuery", CapabilityQuery.FULLTEXTONLY.value()); String cmisQuery = buildQuery(searchContext); assertQueryEquals("CONTAINS('(-\\'multiple words\\' OR test)')", cmisQuery); }
From source file:com.liferay.document.library.repository.cmis.search.BaseCmisSearchQueryBuilderTest.java
License:Open Source License
@Test public void testContainsOnlySupportedWithApostrophe() throws Exception { SearchContext searchContext = getSearchContext(); searchContext.setKeywords("test's"); QueryConfig queryConfig = searchContext.getQueryConfig(); queryConfig.setAttribute("capabilityQuery", CapabilityQuery.FULLTEXTONLY.value()); String cmisQuery = buildQuery(searchContext); assertQueryEquals("CONTAINS('test\\'s')", cmisQuery); }
From source file:com.liferay.document.library.repository.cmis.search.BaseCmisSearchQueryBuilderTest.java
License:Open Source License
protected String buildFolderQuery(boolean searchSubfolders) throws Exception { SearchContext searchContext = getSearchContext(); searchContext.setFolderIds(new long[] { _DL_FOLDER_ID }); searchContext.setKeywords("test"); QueryConfig queryConfig = searchContext.getQueryConfig(); queryConfig.setAttribute("capabilityQuery", CapabilityQuery.BOTHCOMBINED.value()); queryConfig.setSearchSubfolders(searchSubfolders); return buildQuery(searchContext); }