Пример #1
0
 private Query createSearchPageQuery(QueryCriteria queryCriteria, QueryManager queryManager)
     throws Exception {
   SQLQueryBuilder queryBuilder = new SQLQueryBuilder();
   List<String> mopPages =
       this.searchPageByTitle(queryCriteria.getSiteName(), queryCriteria.getKeyword());
   List<QueryProperty> queryProps = new ArrayList<QueryCriteria.QueryProperty>();
   for (String page : mopPages) {
     QueryProperty prop = queryCriteria.new QueryProperty();
     prop.setName("mop:page");
     prop.setValue(page);
     prop.setComparisonType(COMPARISON_TYPE.EQUAL);
     queryProps.add(prop);
   }
   QueryProperty prop = queryCriteria.new QueryProperty();
   prop.setName("exo:name");
   prop.setValue("mop:" + queryCriteria.getKeyword().toLowerCase());
   queryProps.add(prop);
   queryCriteria.setQueryMetadatas(queryProps.toArray(new QueryProperty[queryProps.size()]));
   mapQueryTypes(queryCriteria, queryBuilder);
   if (queryCriteria.isFulltextSearch()) {
     mapQueryPath(queryCriteria, queryBuilder);
     mapFulltextQueryTearm(queryCriteria, queryBuilder, LOGICAL.OR);
   } else {
     searchByNodeName(queryCriteria, queryBuilder);
   }
   mapCategoriesCondition(queryCriteria, queryBuilder);
   mapDatetimeRangeSelected(queryCriteria, queryBuilder);
   mapMetadataProperties(queryCriteria, queryBuilder, LOGICAL.OR);
   orderBy(queryCriteria, queryBuilder);
   String queryStatement = queryBuilder.createQueryStatement();
   Query query = queryManager.createQuery(queryStatement, Query.SQL);
   return query;
 }
Пример #2
0
 /**
  * Search site content.
  *
  * @param queryCriteria the query criteria
  * @param queryManager the query manager
  * @return the query result
  * @throws Exception the exception
  */
 private Query createQuery(QueryCriteria queryCriteria, QueryManager queryManager)
     throws Exception {
   SQLQueryBuilder queryBuilder = new SQLQueryBuilder();
   mapQueryTypes(queryCriteria, queryBuilder);
   if (queryCriteria.isFulltextSearch()) {
     mapQueryPath(queryCriteria, queryBuilder);
     mapFulltextQueryTearm(queryCriteria, queryBuilder, LOGICAL.OR);
   } else {
     searchByNodeName(queryCriteria, queryBuilder);
   }
   mapCategoriesCondition(queryCriteria, queryBuilder);
   mapDatetimeRangeSelected(queryCriteria, queryBuilder);
   mapMetadataProperties(queryCriteria, queryBuilder, LOGICAL.AND);
   orderBy(queryCriteria, queryBuilder);
   String queryStatement = queryBuilder.createQueryStatement();
   Query query = queryManager.createQuery(queryStatement, Query.SQL);
   return query;
 }