Project

General

Profile

« Previous | Next » 

Revision 62692

enhancement #6253 and change in projecttile to be bydefault equals and if quotes present to be exact

View differences:

ParameterQueryEnhancer.java
354 354
        addMetadataQueryTerm("resulttitle", title, queryBuilder);
355 355
        addMetadataAuthorTerm("resultauthor", author, queryBuilder);
356 356
        addMetadataQueryTerm("country", country, queryBuilder);
357

  
357 358
    }
358 359

  
359 360
    public static void enhanceQueryWithProjectMetadataKeywords(StringBuilder queryBuilder, HttpServletRequest request) {
......
365 366

  
366 367
        addMetadataQueryTerm(null, keywords, queryBuilder);
367 368
        addMetadataQueryTerm("projectacronym", acronym, queryBuilder);
368
        addEqualQueryTerm("projecttitle", name, queryBuilder);
369
        addEqual2QueryTerm("projecttitle", name, queryBuilder);
369 370
        addExactQueryTerm("projectcode_nt", grantID, queryBuilder);
370 371
        addExactQueryTerm("projectcallidentifier", callID, queryBuilder);
371 372
    }
......
429 430
        }
430 431
    }
431 432

  
433
    public static void enhanceQueryWithInstancetype(StringBuilder queryBuilder, HttpServletRequest request) {
434
        String[] originalIds = request.getParameterValues("instancetype");
435

  
436
        if (originalIds != null && !(originalIds.length==0)) {
437
            queryBuilder.append(" and (");
438
            for (int i = 0; i < originalIds.length; i++) {
439
                String[] commaSeparated = originalIds[i].split(",");
440
                for (int j = 0; j < commaSeparated.length; j++) {
441
                    queryBuilder.append("(instancetypename exact \"").append(commaSeparated[j]).append("\")");
442
                    if (i < originalIds.length-1 || j < commaSeparated.length-1 ) {
443
                        queryBuilder.append(" or ");
444
                    }
445
                }
446
            }
447
            queryBuilder.append(")");
448
        }
449
    }
450

  
432 451
    public static void enhanceQueryWithOriginalId(StringBuilder queryBuilder, HttpServletRequest request) {
433 452
        String[] originalIds = request.getParameterValues("originalId");
434 453

  
......
618 637
                CQLQueryBuilder.appendFieldQuotedTerm(queryBuilder, CQLQueryBuilder.Operator.AND, indexFieldName, CQLQueryBuilder.Operator.EQUAL, fieldValue);
619 638
            }
620 639
        }
640
    }
621 641

  
622

  
623

  
624

  
642
    public static void addEqual2QueryTerm(String indexFieldName, String fieldValue, StringBuilder queryBuilder){
643
        if (fieldValue != null && !fieldValue.trim().isEmpty()) {
644
            if (fieldValue.startsWith("\"") && fieldValue.endsWith("\"")) {
645
                CQLQueryBuilder.appendFieldTerm(queryBuilder, CQLQueryBuilder.Operator.AND, indexFieldName, CQLQueryBuilder.Operator.EXACT, fieldValue);
646
            } else {
647
                CQLQueryBuilder.appendFieldTerm(queryBuilder, CQLQueryBuilder.Operator.AND, indexFieldName, CQLQueryBuilder.Operator.EQUAL, fieldValue);
648
            }
649
        }
625 650
    }
626 651

  
627 652
    public static void addNotEqualQueryTerm(String indexFieldName, String fieldValue, StringBuilder queryBuilder){

Also available in: Unified diff