List of usage examples for com.liferay.portal.kernel.search.generic BooleanQueryImpl BooleanQueryImpl
BooleanQueryImpl
From source file:com.liferay.asset.categories.internal.search.AssetCategoryIndexer.java
License:Open Source License
@Override public void postProcessSearchQuery(BooleanQuery searchQuery, BooleanFilter fullQueryBooleanFilter, SearchContext searchContext) throws Exception { String title = (String) searchContext.getAttribute(Field.TITLE); if (Validator.isNotNull(title)) { BooleanQuery localizedQuery = new BooleanQueryImpl(); searchContext.setAttribute(Field.ASSET_CATEGORY_TITLE, title); addSearchLocalizedTerm(localizedQuery, searchContext, Field.ASSET_CATEGORY_TITLE, true); addSearchLocalizedTerm(localizedQuery, searchContext, Field.TITLE, true); searchQuery.add(localizedQuery, BooleanClauseOccur.SHOULD); }/* w ww . j ava 2 s . co m*/ }
From source file:com.liferay.asset.categories.internal.search.AssetVocabularyIndexer.java
License:Open Source License
@Override public void postProcessSearchQuery(BooleanQuery searchQuery, BooleanFilter fullQueryBooleanFilter, SearchContext searchContext) throws Exception { String title = (String) searchContext.getAttribute(Field.TITLE); if (Validator.isNotNull(title)) { BooleanQuery localizedQuery = new BooleanQueryImpl(); addSearchLocalizedTerm(localizedQuery, searchContext, Field.TITLE, true); searchQuery.add(localizedQuery, BooleanClauseOccur.SHOULD); }/* w ww . j a v a 2 s . c o m*/ }
From source file:com.liferay.asset.tags.internal.search.AssetTagIndexer.java
License:Open Source License
@Override public void postProcessSearchQuery(BooleanQuery searchQuery, BooleanFilter fullQueryBooleanFilter, SearchContext searchContext) throws Exception { String name = (String) searchContext.getAttribute(Field.NAME); if (Validator.isNotNull(name)) { BooleanQuery nameQuery = new BooleanQueryImpl(); addSearchTerm(nameQuery, searchContext, Field.NAME, true); searchQuery.add(nameQuery, BooleanClauseOccur.SHOULD); }//w w w . j a va2 s.c om }
From source file:com.liferay.configuration.admin.web.internal.search.ConfigurationModelIndexer.java
License:Open Source License
@Override protected BooleanQuery createFullQuery(BooleanFilter fullQueryBooleanFilter, SearchContext searchContext) throws Exception { BooleanQuery searchQuery = new BooleanQueryImpl(); addSearchLocalizedTerm(searchQuery, searchContext, Field.DESCRIPTION, false); addSearchLocalizedTerm(searchQuery, searchContext, Field.TITLE, false); addSearchTerm(searchQuery, searchContext, FieldNames.CONFIGURATION_MODEL_ATTRIBUTE_DESCRIPTION, false); addSearchTerm(searchQuery, searchContext, FieldNames.CONFIGURATION_MODEL_ATTRIBUTE_NAME, false); addSearchTerm(searchQuery, searchContext, FieldNames.CONFIGURATION_MODEL_FACTORY_PID, false); addSearchTerm(searchQuery, searchContext, FieldNames.CONFIGURATION_MODEL_ID, false); BooleanQuery fullBooleanQuery = new BooleanQueryImpl(); if (fullQueryBooleanFilter.hasClauses()) { fullBooleanQuery.setPreBooleanFilter(fullQueryBooleanFilter); }/* w w w . j a v a2 s. c om*/ fullBooleanQuery.add(searchQuery, BooleanClauseOccur.MUST); return fullBooleanQuery; }
From source file:com.liferay.document.library.repository.search.internal.LuceneRepositorySearchQueryTermBuilder.java
License:Open Source License
protected void translateQuery(BooleanQuery booleanQuery, SearchContext searchContext, org.apache.lucene.search.Query query, org.apache.lucene.search.BooleanClause.Occur occur) throws Exception { BooleanClauseOccur booleanClauseOccur = getBooleanClauseOccur(occur); if (query instanceof org.apache.lucene.search.TermQuery) { org.apache.lucene.search.TermQuery luceneTermQuery = (org.apache.lucene.search.TermQuery) query; Term term = luceneTermQuery.getTerm(); String termValue = term.text(); TermQuery termQuery = new TermQueryImpl(term.field(), termValue); booleanQuery.add(termQuery, getBooleanClauseOccur(occur)); } else if (query instanceof org.apache.lucene.search.BooleanQuery) { org.apache.lucene.search.BooleanQuery curBooleanQuery = (org.apache.lucene.search.BooleanQuery) query; BooleanQuery conjunctionQuery = new BooleanQueryImpl(); BooleanQuery disjunctionQuery = new BooleanQueryImpl(); for (org.apache.lucene.search.BooleanClause booleanClause : curBooleanQuery.getClauses()) { BooleanClauseOccur curBooleanClauseOccur = getBooleanClauseOccur(booleanClause.getOccur()); BooleanQuery subbooleanQuery = null; if (curBooleanClauseOccur.equals(BooleanClauseOccur.SHOULD)) { subbooleanQuery = disjunctionQuery; } else { subbooleanQuery = conjunctionQuery; }/*from w w w . j ava2 s. com*/ translateQuery(subbooleanQuery, searchContext, booleanClause.getQuery(), booleanClause.getOccur()); } if (conjunctionQuery.hasClauses()) { booleanQuery.add(conjunctionQuery, BooleanClauseOccur.MUST); } if (disjunctionQuery.hasClauses()) { booleanQuery.add(disjunctionQuery, BooleanClauseOccur.SHOULD); } } else if (query instanceof org.apache.lucene.search.FuzzyQuery) { org.apache.lucene.search.FuzzyQuery fuzzyQuery = (org.apache.lucene.search.FuzzyQuery) query; Term term = fuzzyQuery.getTerm(); String termValue = term.text().concat(StringPool.STAR); WildcardQuery wildcardQuery = new WildcardQueryImpl(term.field(), termValue); booleanQuery.add(wildcardQuery, booleanClauseOccur); } else if (query instanceof org.apache.lucene.search.PhraseQuery) { org.apache.lucene.search.PhraseQuery phraseQuery = (org.apache.lucene.search.PhraseQuery) query; Term[] terms = phraseQuery.getTerms(); StringBundler sb = new StringBundler(terms.length * 2); for (Term term : terms) { sb.append(term.text()); sb.append(StringPool.SPACE); } TermQuery termQuery = new TermQueryImpl(terms[0].field(), sb.toString().trim()); booleanQuery.add(termQuery, booleanClauseOccur); } else if (query instanceof org.apache.lucene.search.PrefixQuery) { org.apache.lucene.search.PrefixQuery prefixQuery = (org.apache.lucene.search.PrefixQuery) query; Term prefixTerm = prefixQuery.getPrefix(); String termValue = prefixTerm.text().concat(StringPool.STAR); WildcardQuery wildcardQuery = new WildcardQueryImpl(prefixTerm.field(), termValue); booleanQuery.add(wildcardQuery, booleanClauseOccur); } else if (query instanceof org.apache.lucene.search.TermRangeQuery) { org.apache.lucene.search.TermRangeQuery termRangeQuery = (org.apache.lucene.search.TermRangeQuery) query; booleanQuery.addRangeTerm(termRangeQuery.getField(), termRangeQuery.getLowerTerm().utf8ToString(), termRangeQuery.getUpperTerm().utf8ToString()); } else if (query instanceof org.apache.lucene.search.WildcardQuery) { org.apache.lucene.search.WildcardQuery luceneWildcardQuery = (org.apache.lucene.search.WildcardQuery) query; Term wildcardTerm = luceneWildcardQuery.getTerm(); WildcardQuery wildcardQuery = new WildcardQueryImpl(wildcardTerm.field(), wildcardTerm.text()); booleanQuery.add(wildcardQuery, booleanClauseOccur); } else { if (_log.isWarnEnabled()) { _log.warn("Ignoring unknown query type " + query.getClass() + " with query " + query); } } }
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 {//from ww w. j a v a2 s.c om 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.repository.search.internal.RepositorySearchQueryBuilderImpl.java
License:Open Source License
protected void addContext(BooleanQuery contextQuery, SearchContext searchContext) throws Exception { long[] folderIds = searchContext.getFolderIds(); if (ArrayUtil.isEmpty(folderIds)) { return;/*from ww w . j av a2s . co m*/ } if (folderIds[0] == DLFolderConstants.DEFAULT_PARENT_FOLDER_ID) { return; } BooleanQuery folderIdsQuery = new BooleanQueryImpl(); for (long folderId : folderIds) { try { _dlAppService.getFolder(folderId); } catch (Exception e) { continue; } folderIdsQuery.add(new TermQueryImpl(Field.FOLDER_ID, String.valueOf(folderId)), BooleanClauseOccur.SHOULD); } contextQuery.add(folderIdsQuery, BooleanClauseOccur.MUST); }
From source file:com.liferay.document.library.repository.search.internal.RepositorySearchQueryBuilderImpl.java
License:Open Source License
protected void addSearchKeywords(BooleanQuery searchQuery, SearchContext searchContext) throws Exception { String keywords = searchContext.getKeywords(); if (Validator.isNull(keywords)) { return;// ww w . j a va2 s . c o m } BooleanQuery titleQuery = new BooleanQueryImpl(); _repositorySearchQueryTermBuilder.addTerm(titleQuery, searchContext, Field.TITLE, keywords); if (titleQuery.hasClauses() && !contains(searchQuery, titleQuery)) { searchQuery.add(titleQuery, BooleanClauseOccur.SHOULD); } BooleanQuery userNameQuery = new BooleanQueryImpl(); _repositorySearchQueryTermBuilder.addTerm(userNameQuery, searchContext, Field.USER_NAME, keywords); if (userNameQuery.hasClauses() && !contains(searchQuery, userNameQuery)) { searchQuery.add(userNameQuery, BooleanClauseOccur.SHOULD); } BooleanQuery contentQuery = new BooleanQueryImpl(); _repositorySearchQueryTermBuilder.addTerm(contentQuery, searchContext, Field.CONTENT, keywords); if (contentQuery.hasClauses() && !contains(searchQuery, contentQuery)) { searchQuery.add(contentQuery, BooleanClauseOccur.SHOULD); } }
From source file:com.liferay.dynamic.data.mapping.internal.util.DDMIndexerImpl.java
License:Open Source License
@Override public QueryFilter createFieldValueQueryFilter(String ddmStructureFieldName, Serializable ddmStructureFieldValue, Locale locale) throws Exception { BooleanQuery booleanQuery = new BooleanQueryImpl(); String[] ddmStructureFieldNameParts = StringUtil.split(ddmStructureFieldName, DDMIndexer.DDM_FIELD_SEPARATOR); DDMStructure structure = _ddmStructureLocalService .getStructure(GetterUtil.getLong(ddmStructureFieldNameParts[2])); String fieldName = StringUtil.replaceLast(ddmStructureFieldNameParts[3], StringPool.UNDERLINE.concat(LocaleUtil.toLanguageId(locale)), StringPool.BLANK); if (structure.hasField(fieldName)) { ddmStructureFieldValue = _ddm.getIndexedFieldValue(ddmStructureFieldValue, structure.getFieldType(fieldName)); }//from w w w . j ava2s .c o m booleanQuery.addRequiredTerm(ddmStructureFieldName, StringPool.QUOTE + ddmStructureFieldValue + StringPool.QUOTE); return new QueryFilter(booleanQuery); }
From source file:com.liferay.journal.search.JournalArticleIndexer.java
License:Open Source License
@Override protected Map<String, Query> addSearchLocalizedTerm(BooleanQuery searchQuery, SearchContext searchContext, String field, boolean like) throws Exception { if (Validator.isNull(field)) { return Collections.emptyMap(); }// ww w. j av a 2 s .c om String value = String.valueOf(searchContext.getAttribute(field)); if (Validator.isNull(value)) { value = searchContext.getKeywords(); } if (Validator.isNull(value)) { return Collections.emptyMap(); } String localizedField = DocumentImpl.getLocalizedName(searchContext.getLocale(), field); Map<String, Query> queries = new HashMap<>(); if (Validator.isNull(searchContext.getKeywords())) { BooleanQuery localizedQuery = new BooleanQueryImpl(); Query query = localizedQuery.addTerm(field, value, like); queries.put(field, query); Query localizedFieldQuery = localizedQuery.addTerm(localizedField, value, like); queries.put(field, localizedFieldQuery); BooleanClauseOccur booleanClauseOccur = BooleanClauseOccur.SHOULD; if (searchContext.isAndSearch()) { booleanClauseOccur = BooleanClauseOccur.MUST; } searchQuery.add(localizedQuery, booleanClauseOccur); } else { Query query = searchQuery.addTerm(localizedField, value, like); queries.put(field, query); } return queries; }