Example usage for com.liferay.portal.kernel.search BooleanQuery addTerm

List of usage examples for com.liferay.portal.kernel.search BooleanQuery addTerm

Introduction

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

Prototype

public Query addTerm(String field, String value, boolean like) throws ParseException;

Source Link

Usage

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();
    }//  w ww. j  ava 2 s.  co m

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

From source file:com.liferay.portlet.journal.util.JournalArticleIndexer.java

License:Open Source License

@Override
protected void addSearchLocalizedTerm(BooleanQuery searchQuery, SearchContext searchContext, String field,
        boolean like) throws Exception {

    if (Validator.isNull(field)) {
        return;//from ww  w. j a  v a2  s  .com
    }

    String value = String.valueOf(searchContext.getAttribute(field));

    if (Validator.isNull(value)) {
        value = searchContext.getKeywords();
    }

    if (Validator.isNull(value)) {
        return;
    }

    String localizedField = DocumentImpl.getLocalizedName(searchContext.getLocale(), field);

    if (Validator.isNull(searchContext.getKeywords())) {
        BooleanQuery localizedQuery = BooleanQueryFactoryUtil.create(searchContext);

        localizedQuery.addTerm(field, value, like);
        localizedQuery.addTerm(localizedField, value, like);

        BooleanClauseOccur booleanClauseOccur = BooleanClauseOccur.SHOULD;

        if (searchContext.isAndSearch()) {
            booleanClauseOccur = BooleanClauseOccur.MUST;
        }

        searchQuery.add(localizedQuery, booleanClauseOccur);
    } else {
        searchQuery.addTerm(localizedField, value, like);
    }
}

From source file:com.liferay.portlet.usersadmin.util.OrganizationIndexer.java

License:Open Source License

@Override
public void postProcessContextQuery(BooleanQuery contextQuery, SearchContext searchContext) throws Exception {

    LinkedHashMap<String, Object> params = (LinkedHashMap<String, Object>) searchContext.getAttribute("params");

    if (params == null) {
        return;//from   w  ww.j  a  va 2s.c  o m
    }

    List<Organization> organizationsTree = (List<Organization>) params.get("organizationsTree");

    if ((organizationsTree != null) && !organizationsTree.isEmpty()) {
        BooleanQuery booleanQuery = BooleanQueryFactoryUtil.create(searchContext);

        for (Organization organization : organizationsTree) {
            String treePath = organization.buildTreePath();

            booleanQuery.addTerm("treePath", treePath, true);
        }

        contextQuery.add(booleanQuery, BooleanClauseOccur.MUST);
    }
}

From source file:com.liferay.so.hook.indexer.UserIndexerPostProcessor.java

License:Open Source License

@Override
public void postProcessSearchQuery(BooleanQuery searchQuery, SearchContext searchContext) throws Exception {

    String keywords = searchContext.getKeywords();

    if (Validator.isNotNull(keywords)) {
        searchQuery.addTerm("projectTitles", keywords, true);
    }//from   www.j a  va  2 s  .co m
}

From source file:com.slayer.service.impl.LMSBookLocalServiceImpl.java

License:Open Source License

private void appendSearchTerm(String field, String value, boolean isAndSearch, BooleanQuery searchQuery) {

    if (Validator.isNotNull(value)) {
        if (isAndSearch) {
            searchQuery.addRequiredTerm(field, value, true);
        } else {//  w  w  w  .j a v a2s . com
            try {
                searchQuery.addTerm(field, value, true);
            } catch (ParseException e) {
                e.printStackTrace();
            }
        }
    }
}

From source file:org.opencps.dossiermgt.search.DossierFileSearchUtil.java

License:Open Source License

public static BooleanQuery buildSearchQuery(String keywords, SearchContext searchContext) {
    BooleanQuery query = BooleanQueryFactoryUtil.create(searchContext);
    keywords = keywords.toLowerCase();/*from www. j a v  a 2  s  .c  o m*/
    try {
        query.addTerm(DossierFileDisplayTerms.DISPLAY_NAME, keywords, false);
        query.addTerm(DossierFileDisplayTerms.FORM_DATA, keywords, false);
        query.addTerm(DossierFileDisplayTerms.DOSSIER_FILE_NO, keywords, false);
    } catch (ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    /*
    String[] terms = StringUtil.split(keywords);
    for (String term : terms) {
       TermQuery termDisplayName = TermQueryFactoryUtil.create(
       searchContext, DossierFileDisplayTerms.DISPLAY_NAME, term);
       TermQuery termFormData = TermQueryFactoryUtil.create(searchContext,
       DossierFileDisplayTerms.FORM_DATA, term);
       TermQuery termFileNo = TermQueryFactoryUtil.create(searchContext,
       DossierFileDisplayTerms.DOSSIER_FILE_NO, term);
            
       try {
    query.add(termDisplayName, BooleanClauseOccur.SHOULD);
    query.add(termFormData, BooleanClauseOccur.SHOULD);
    query.add(termFileNo, BooleanClauseOccur.SHOULD);
       } catch (ParseException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
       }
    }
    */
    return query;
}

From source file:org.opencps.dossiermgt.search.DossierSearchUtil.java

License:Open Source License

public static BooleanQuery buildSearchQuery(String keywords, SearchContext searchContext) {
    BooleanQuery query = BooleanQueryFactoryUtil.create(searchContext);
    keywords = keywords.toLowerCase();/*from   w  ww.  java 2  s  . co  m*/
    String[] terms = StringUtil.split(keywords);
    try {
        query.addTerm(DossierDisplayTerms.RECEPTION_NO, keywords, false);
        query.addTerm(DossierDisplayTerms.CITY_NAME, keywords, false);
        query.addTerm(DossierDisplayTerms.EXTERNALREF_NO, keywords, false);
        query.addTerm(DossierDisplayTerms.EXTERNALREF_URL, keywords, false);
        query.addTerm(DossierDisplayTerms.GOVAGENCY_NAME, keywords, false);
        query.addTerm(DossierDisplayTerms.SUBJECT_NAME, keywords, false);
        query.addTerm(DossierDisplayTerms.CITY_NAME, keywords, false);
        query.addTerm(DossierDisplayTerms.ADDRESS, keywords, false);
        query.addTerm(DossierDisplayTerms.DISTRICT_NAME, keywords, false);
        query.addTerm(DossierDisplayTerms.WARD_NAME, keywords, false);
        query.addTerm(DossierDisplayTerms.CONTACT_NAME, keywords, false);
        query.addTerm(DossierDisplayTerms.CONTACT_TEL_NO, keywords, false);
        query.addTerm(DossierDisplayTerms.CONTACT_EMAIL, keywords, false);
        query.addTerm(DossierDisplayTerms.NOTE, keywords, false);
        query.addTerm(DossierDisplayTerms.DOSSIER_ID, keywords, false);
    } catch (ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    /*
    for (String term : terms) {
       TermQuery termReceptionNo = TermQueryFactoryUtil.create(
       searchContext, DossierDisplayTerms.RECEPTION_NO, term);
       TermQuery termCityName = TermQueryFactoryUtil.create(searchContext,
       DossierDisplayTerms.CITY_NAME, term);
       TermQuery termExternalRefNo = TermQueryFactoryUtil.create(
       searchContext, DossierDisplayTerms.EXTERNALREF_NO, term);
       TermQuery termExternalRef = TermQueryFactoryUtil.create(
       searchContext, DossierDisplayTerms.EXTERNALREF_URL, term);
       TermQuery termGovAgencyName = TermQueryFactoryUtil.create(
       searchContext, DossierDisplayTerms.GOVAGENCY_NAME, term);
       TermQuery termSubjectName = TermQueryFactoryUtil.create(
       searchContext, DossierDisplayTerms.SUBJECT_NAME, term);
       TermQuery termAddress = TermQueryFactoryUtil.create(searchContext,
       DossierDisplayTerms.ADDRESS, term);
       TermQuery termDistrictName = TermQueryFactoryUtil.create(
       searchContext, DossierDisplayTerms.DISTRICT_NAME, term);
       TermQuery termWardName = TermQueryFactoryUtil.create(searchContext,
       DossierDisplayTerms.WARD_NAME, term);
       TermQuery termContactName = TermQueryFactoryUtil.create(
       searchContext, DossierDisplayTerms.CONTACT_NAME, term);
       TermQuery termContactTelNo = TermQueryFactoryUtil.create(
       searchContext, DossierDisplayTerms.CONTACT_TEL_NO, term);
       TermQuery termContactEmail = TermQueryFactoryUtil.create(
       searchContext, DossierDisplayTerms.CONTACT_EMAIL, term);
       TermQuery termNote = TermQueryFactoryUtil.create(searchContext,
       DossierDisplayTerms.NOTE, term);
       TermQuery termDossierId = TermQueryFactoryUtil.create(
       searchContext, DossierDisplayTerms.DOSSIER_ID, term);
            
       try {
    query.add(termReceptionNo, BooleanClauseOccur.SHOULD);
    query.add(termCityName, BooleanClauseOccur.SHOULD);
    query.add(termExternalRefNo, BooleanClauseOccur.SHOULD);
    query.add(termExternalRef, BooleanClauseOccur.SHOULD);
    query.add(termGovAgencyName, BooleanClauseOccur.SHOULD);
    query.add(termSubjectName, BooleanClauseOccur.SHOULD);
    query.add(termAddress, BooleanClauseOccur.SHOULD);
    query.add(termDistrictName, BooleanClauseOccur.SHOULD);
    query.add(termWardName, BooleanClauseOccur.SHOULD);
    query.add(termContactName, BooleanClauseOccur.SHOULD);
    query.add(termContactEmail, BooleanClauseOccur.SHOULD);
    query.add(termContactTelNo, BooleanClauseOccur.SHOULD);
    query.add(termNote, BooleanClauseOccur.SHOULD);
    query.add(termDossierId, BooleanClauseOccur.SHOULD);
       } catch (ParseException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
       }
    }
    */
    return query;
}