Example usage for com.liferay.portal.kernel.search.generic BooleanQueryImpl BooleanQueryImpl

List of usage examples for com.liferay.portal.kernel.search.generic BooleanQueryImpl BooleanQueryImpl

Introduction

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

Prototype

BooleanQueryImpl

Source Link

Usage

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