mirror of
https://github.com/sismics/docs.git
synced 2024-11-25 15:17:57 +01:00
Closes #336: search document by file mime type
This commit is contained in:
parent
11ab07b238
commit
bd09312418
@ -77,6 +77,11 @@ public class DocumentCriteria {
|
|||||||
*/
|
*/
|
||||||
private Boolean activeRoute;
|
private Boolean activeRoute;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* MIME type of a file.
|
||||||
|
*/
|
||||||
|
private String mimeType;
|
||||||
|
|
||||||
public List<String> getTargetIdList() {
|
public List<String> getTargetIdList() {
|
||||||
return targetIdList;
|
return targetIdList;
|
||||||
}
|
}
|
||||||
@ -181,4 +186,12 @@ public class DocumentCriteria {
|
|||||||
public void setActiveRoute(Boolean activeRoute) {
|
public void setActiveRoute(Boolean activeRoute) {
|
||||||
this.activeRoute = activeRoute;
|
this.activeRoute = activeRoute;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getMimeType() {
|
||||||
|
return mimeType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMimeType(String mimeType) {
|
||||||
|
this.mimeType = mimeType;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -251,7 +251,7 @@ public class LuceneIndexingHandler implements IndexingHandler {
|
|||||||
" s.SHA_DELETEDATE_D IS NULL group by ac.ACL_SOURCEID_C) s on s.ACL_SOURCEID_C = d.DOC_ID_C " +
|
" s.SHA_DELETEDATE_D IS NULL group by ac.ACL_SOURCEID_C) s on s.ACL_SOURCEID_C = d.DOC_ID_C " +
|
||||||
" left join (SELECT count(f.FIL_ID_C) count, f.FIL_IDDOC_C " +
|
" left join (SELECT count(f.FIL_ID_C) count, f.FIL_IDDOC_C " +
|
||||||
" FROM T_FILE f " +
|
" FROM T_FILE f " +
|
||||||
" WHERE f.FIL_DELETEDATE_D IS NULL group by f.FIL_IDDOC_C) f on f.FIL_IDDOC_C = d.DOC_ID_C ");
|
" WHERE f.FIL_DELETEDATE_D is null group by f.FIL_IDDOC_C) f on f.FIL_IDDOC_C = d.DOC_ID_C ");
|
||||||
sb.append(" left join (select rs.*, rs3.idDocument " +
|
sb.append(" left join (select rs.*, rs3.idDocument " +
|
||||||
"from T_ROUTE_STEP rs " +
|
"from T_ROUTE_STEP rs " +
|
||||||
"join (select r.RTE_IDDOCUMENT_C idDocument, rs.RTP_IDROUTE_C idRoute, min(rs.RTP_ORDER_N) minOrder from T_ROUTE_STEP rs join T_ROUTE r on r.RTE_ID_C = rs.RTP_IDROUTE_C and r.RTE_DELETEDATE_D is null where rs.RTP_DELETEDATE_D is null and rs.RTP_ENDDATE_D is null group by rs.RTP_IDROUTE_C, r.RTE_IDDOCUMENT_C) rs3 on rs.RTP_IDROUTE_C = rs3.idRoute and rs.RTP_ORDER_N = rs3.minOrder " +
|
"join (select r.RTE_IDDOCUMENT_C idDocument, rs.RTP_IDROUTE_C idRoute, min(rs.RTP_ORDER_N) minOrder from T_ROUTE_STEP rs join T_ROUTE r on r.RTE_ID_C = rs.RTP_IDROUTE_C and r.RTE_DELETEDATE_D is null where rs.RTP_DELETEDATE_D is null and rs.RTP_ENDDATE_D is null group by rs.RTP_IDROUTE_C, r.RTE_IDDOCUMENT_C) rs3 on rs.RTP_IDROUTE_C = rs3.idRoute and rs.RTP_ORDER_N = rs3.minOrder " +
|
||||||
@ -324,6 +324,10 @@ public class LuceneIndexingHandler implements IndexingHandler {
|
|||||||
if (criteria.getShared() != null && criteria.getShared()) {
|
if (criteria.getShared() != null && criteria.getShared()) {
|
||||||
criteriaList.add("s.count > 0");
|
criteriaList.add("s.count > 0");
|
||||||
}
|
}
|
||||||
|
if (criteria.getMimeType() != null) {
|
||||||
|
sb.append("left join T_FILE f0 on f0.FIL_IDDOC_C = d.DOC_ID_C and f0.FIL_DELETEDATE_D is null");
|
||||||
|
criteriaList.add("f0.FIL_ID_C is not null");
|
||||||
|
}
|
||||||
if (criteria.getLanguage() != null) {
|
if (criteria.getLanguage() != null) {
|
||||||
criteriaList.add("d.DOC_LANGUAGE_C = :language");
|
criteriaList.add("d.DOC_LANGUAGE_C = :language");
|
||||||
parameterMap.put("language", criteria.getLanguage());
|
parameterMap.put("language", criteria.getLanguage());
|
||||||
|
@ -569,6 +569,10 @@ public class DocumentResource extends BaseResource {
|
|||||||
documentCriteria.setLanguage(UUID.randomUUID().toString());
|
documentCriteria.setLanguage(UUID.randomUUID().toString());
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case "mime":
|
||||||
|
// New mime type criteria
|
||||||
|
documentCriteria.setMimeType(params[1]);
|
||||||
|
break;
|
||||||
case "by":
|
case "by":
|
||||||
// New creator criteria
|
// New creator criteria
|
||||||
User user = userDao.getActiveByUsername(params[1]);
|
User user = userDao.getActiveByUsername(params[1]);
|
||||||
|
@ -214,6 +214,7 @@ public class TestDocumentResource extends BaseJerseyTest {
|
|||||||
Assert.assertEquals(0, searchDocuments("tag:super !tag:hr", document1Token));
|
Assert.assertEquals(0, searchDocuments("tag:super !tag:hr", document1Token));
|
||||||
Assert.assertEquals(1, searchDocuments("shared:yes", document1Token));
|
Assert.assertEquals(1, searchDocuments("shared:yes", document1Token));
|
||||||
Assert.assertEquals(2, searchDocuments("lang:eng", document1Token));
|
Assert.assertEquals(2, searchDocuments("lang:eng", document1Token));
|
||||||
|
Assert.assertEquals(1, searchDocuments("mime:image/png", document1Token));
|
||||||
Assert.assertEquals(1, searchDocuments("after:2010 before:2040-08 tag:super shared:yes lang:eng title description full:uranium", document1Token));
|
Assert.assertEquals(1, searchDocuments("after:2010 before:2040-08 tag:super shared:yes lang:eng title description full:uranium", document1Token));
|
||||||
|
|
||||||
// Search documents (nothing)
|
// Search documents (nothing)
|
||||||
|
Loading…
Reference in New Issue
Block a user