diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHImpl.java b/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHImpl.java index 034ae4684f035f90bac56f6a09b178715bb1252d..ff9e3f73714c3179ef000e3e302c8601d7367e3c 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHImpl.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHImpl.java @@ -312,7 +312,7 @@ public class OAIPMHImpl implements OAIPMHProducer { */ public JAXBElement<OAIPMHType> listSetsRequest(ObjectFactory obf, OAIPMHType oai, RequestType request) { - + System.out.println(this.textgrid); ListSetsType sl = new ListSetsType(); JAXBElement<OAIPMHType> oaipmhRoot = obf.createOAIPMH(oai); sl = this.setList.setListBuilder(); diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererDC.java b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererDC.java index 0d56dc644bb31e391b0f248b75444307f95839b8..14c1d90f4510e31959f33efb3c2f937c2049fe60 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererDC.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererDC.java @@ -268,7 +268,6 @@ public class RecordListDelivererDC extends RecordListDelivererAbstract { public DublinCoreBuilder putContentIntoDCFieldLists(SearchHit hit, GetResponse responseWorkValues) { DublinCoreBuilder result = new DublinCoreBuilder(); - System.out.println("BLA"); result.setContributor(DublinCoreFieldLoader.setContributor(responseWorkValues, this.contributorList)); result.setCoverage(DublinCoreFieldLoader.setCoverage(responseWorkValues, this.coverageList)); result.setCreator(DublinCoreFieldLoader.setCreator(responseWorkValues, this.creatorList)); diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/SetDeliverer.java b/oaipmh-core/src/main/java/info/textgrid/middleware/SetDeliverer.java index fbe326cbc136f642548edfcdd079e0ed34a775d5..b74ee6307833f6cfdb5f7fee79f7b491681b8673 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/SetDeliverer.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/SetDeliverer.java @@ -25,6 +25,8 @@ import org.elasticsearch.common.Strings; import org.elasticsearch.index.query.QueryBuilder; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.search.SearchHit; +import org.elasticsearch.search.aggregations.AggregationBuilder; +import org.elasticsearch.search.aggregations.AggregationBuilders; import org.elasticsearch.search.builder.SearchSourceBuilder; import org.elasticsearch.search.fetch.subphase.FetchSourceContext; @@ -60,25 +62,33 @@ public class SetDeliverer { */ public ListSetsType setListBuilder() { - ListSetsType setList = new ListSetsType(); QueryBuilder aggQuery; - if (this.textgrid) { + if (!this.textgrid) { + System.out.println("TEST"); aggQuery = QueryBuilders.matchPhraseQuery("format", TextGridMimetypes.EDITION); } else { aggQuery = QueryBuilders.matchPhraseQuery("descriptiveMetadata.dc:format", TextGridMimetypes.DARIAH_COLLECTION); } - + SearchRequest request = new SearchRequest(OAI_ESClient.getEsIndex()); SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); - searchSourceBuilder.query(aggQuery); + //searchSourceBuilder.query(aggQuery); + + AggregationBuilder agg = AggregationBuilders + .terms("project.value.untouched") + .field("project.value.untouched") + .size(10000); + searchSourceBuilder.aggregation(agg); + + request.source(searchSourceBuilder); - searchSourceBuilder.storedField(this.formatField); + /*searchSourceBuilder.storedField(this.formatField); searchSourceBuilder.storedField(this.identifierField); searchSourceBuilder.storedField("project.value"); - searchSourceBuilder.storedField("project.id"); - searchSourceBuilder.size(100000); + searchSourceBuilder.storedField("project.id");*/ + searchSourceBuilder.size(10000); /*SearchRequestBuilder request = OAI_ESClient.getEsClient() .prepareSearch(OAI_ESClient.getEsIndex()).setTypes(OAI_ESClient.getEsType()) @@ -87,30 +97,34 @@ public class SetDeliverer { SearchResponse getRecordListItems=null; try { + getRecordListItems = OAI_ESClient.getEsClient().search(request, RequestOptions.DEFAULT); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); - } ; + } for (SearchHit hit : getRecordListItems.getHits().getHits()) { - - if (this.dariah == true && hit.getSourceAsMap().get(this.identifierField) + + if (this.dariah == false && hit.getSourceAsMap().get(this.identifierField) .toString().startsWith("hdl:")) { String pid = hit.getFields().get(this.identifierField).getValues().get(0).toString(); this.identifier.add(pid); } - - if (this.textgrid == true) { - String projectName = hit.getSourceAsMap().get("project.value").toString(); - String projectID = hit.getSourceAsMap().get("project.id").toString(); + + if (this.textgrid == false) { + + String[] projectFields = new String[] {"project.value", "project.id"}; + String projectName = DublinCoreFieldLoader.fillList(hit, projectFields).get(0); + String projectID = DublinCoreFieldLoader.fillList(hit, projectFields).get(1); String projectSetSpec = projectName.concat(":").concat(projectID); - this.setSet.put(projectID, projectName); + System.out.println(projectName + ": " + projectSetSpec); + SetDeliverer.setSet.put(projectID, projectName); } } - - if (this.textgrid == true) { + System.out.println("MAP SIZE: " + setSet.size()); + if (this.textgrid == false) { Iterator it = setSet.entrySet().iterator(); while (it.hasNext()) { Map.Entry pair = (Map.Entry) it.next(); @@ -121,7 +135,7 @@ public class SetDeliverer { } } - if (this.dariah == true) { + if (this.dariah == false) { for (String identifierSetSpec : this.identifier) { String id = identifierSetSpec; try { @@ -132,12 +146,12 @@ public class SetDeliverer { id = identifierSetSpec.substring(this.repositoryObjectURIPrefix.length()); - String[] includes = new String[] {this.specField}; - String[] excludes = Strings.EMPTY_ARRAY; - FetchSourceContext fetchSourceContext = - new FetchSourceContext(true, includes, excludes); + String[] includes2 = new String[] {this.specField}; + String[] excludes2 = Strings.EMPTY_ARRAY; + FetchSourceContext fetchSourceContext2 = + new FetchSourceContext(true, includes2, excludes2); - GetRequest getRequest = new GetRequest(OAI_ESClient.getEsIndex(), OAI_ESClient.getEsType(), id).fetchSourceContext(fetchSourceContext); + GetRequest getRequest = new GetRequest(OAI_ESClient.getEsIndex(), OAI_ESClient.getEsType(), id).fetchSourceContext(fetchSourceContext2); GetResponse setSpec = null; try { diff --git a/oaipmh-core/src/test/java/info/textgrid/middleware/OaiPmhTest.java b/oaipmh-core/src/test/java/info/textgrid/middleware/OaiPmhTest.java index 341b428e7132793d1335f4587edfbb6f027c1cbb..5433ddb6832b7b63da43f4e74b383a240125ee7b 100644 --- a/oaipmh-core/src/test/java/info/textgrid/middleware/OaiPmhTest.java +++ b/oaipmh-core/src/test/java/info/textgrid/middleware/OaiPmhTest.java @@ -482,9 +482,9 @@ public class OaiPmhTest { * @throws ParseException */ @Test - //@Ignore + @Ignore public void testListSets() throws ParseException { - + OaiPmhTest.setListTextGrid.setFormatField("format"); OaiPmhTest.setListTextGrid.setFormatToFilter(TextGridMimetypes.EDITION); OaiPmhTest.setListTextGrid.setIdentifierField("textgridUri");