Revision 62692
Added by Katerina Iatropoulou over 1 year ago
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
enhancement #6253 and change in projecttile to be bydefault equals and if quotes present to be exact