The following samples show how to search documents by name, parent folder, date last modified, and author.
\\for this sample it is assumed that a Date variable, date, exists representing a past date
protected DocumentRepository documentRepository;
StringFieldCriterion fieldCriterion1 = new StringFieldCriterion();
fieldCriterion1.setComparator(StringComparator.CONTAINS);
LegacySearchFieldPathExpression fieldPathExpression1 = new LegacySearchFieldPathExpression();
fieldPathExpression1.setSearchKeyPath("name");
fieldCriterion1.setFieldPath(fieldPathExpression);
fieldCriterion1.getValue().add("Invoice_10508");
StringFieldCriterion fieldCriterion2 = new StringFieldCriterion();
fieldCriterion2.setComparator(StringComparator.EQUALS);
LegacySearchFieldPathExpression fieldPathExpression2 = new LegacySearchFieldPathExpression();
fieldPathExpression2.setSearchKeyPath("parentFolder.uniqueKey");
fieldCriterion2.setFieldPath(fieldPathExpression);
fieldCriterion2.getValue().add("DOCU_1099");
DateFieldCriterion fieldCriterion3 = new DateFieldCriterion();
fieldCriterion3.setComparator(DateComparator.EQUALS);
LegacySearchFieldPathExpression fieldPathExpression3 = new LegacySearchFieldPathExpression();
fieldPathExpression3.setSearchKeyPath("modifiedOn");
fieldCriterion3.setFieldPath(fieldPathExpression);
fieldCriterion3.getValue().add(date);
StringFieldCriterion fieldCriterion4 = new StringFieldCriterion();
fieldCriterion4.setComparator(StringComparator.EQUALS);
LegacySearchFieldPathExpression fieldPathExpression4 = new LegacySearchFieldPathExpression();
fieldPathExpression4.setSearchKeyPath("author.uniqueKey");
fieldCriterion4.setFieldPath(fieldPathExpression);
fieldCriterion4.getValue().add("CONT_1015");
FieldSearchClause searchCriteria = new FieldSearchClause();
searchCriteria.setOperator(LogicOperator.AND);
searchCriteria.getCriteria().add(fieldCriterion1);
searchCriteria.getCriteria().add(fieldCriterion2);
searchCriteria.getCriteria().add(fieldCriterion3);
searchCriteria.getCriteria().add(fieldCriterion4);
List<Document> searchDocument = documentRepository.readDocumentsByCriteria(searchCriteria, 100, getPropertiesToRead());
private List<String> getPropertiesToRead() {
List<String> props = new List<String>();
//the list of all available properties displays below but to increase efficiency in your searches, you can omit unnecessary properties from your application and those values will not be returned
props.add("version");
props.add("subject");
props.add("categories");
props.add("createdOn");
props.add("createdBy");
props.add("modifiedBy");
props.add("modifiedOn");
props.add("name");
props.add("author");
props.add("authorDate");
props.add("size");
//the contentType is only relevant to a document of type FILE
props.add("contentType");
//the contentType is only relevant to a document of type FILE
props.add("content");
props.add("type");
props.add("parentFolder");
props.add("checkedOutBy");
props.add("checkedOutOn");
props.add("checkedInBy");
props.add("checkedInOn");
props.add("versionText");
//the url is only relevant to a document of type HYPERLINK
props.add("url");
//the contentType is only relevant to a document of type SHORTCUT
props.add("shortcutToDocument");
return props;
}