From ac412e93e26c951eef0df66d2bc9abae93a187ce Mon Sep 17 00:00:00 2001 From: mbrodhu <brodhun@sub.uni-goettingen.de> Date: Sat, 13 Dec 2014 13:57:58 +0100 Subject: [PATCH] add class SetDeliverer.java to path --- .../textgrid/middleware/SetDeliverer.java | 62 +++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 oaipmh-core/src/main/java/info/textgrid/middleware/SetDeliverer.java diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/SetDeliverer.java b/oaipmh-core/src/main/java/info/textgrid/middleware/SetDeliverer.java new file mode 100644 index 00000000..e2af0ba9 --- /dev/null +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/SetDeliverer.java @@ -0,0 +1,62 @@ +package info.textgrid.middleware; + +import info.textgrid.middleware.oaipmh.ListSetsType; +import info.textgrid.middleware.oaipmh.SetType; + +import java.util.LinkedHashSet; +import java.util.Set; + +import org.elasticsearch.action.search.SearchRequestBuilder; +import org.elasticsearch.action.search.SearchResponse; +import org.elasticsearch.index.query.QueryBuilders; +import org.elasticsearch.index.query.QueryStringQueryBuilder; +import org.elasticsearch.search.SearchHit; + + + + +public class SetDeliverer { + + ListSetsType setList = new ListSetsType(); + private OAI_ESClient oaiEsClient; + + public SetDeliverer(OAI_ESClient oaiEsClient) { + this.oaiEsClient = oaiEsClient; + } + + private Set<String> projects = new LinkedHashSet<String>(); + + public ListSetsType setListBuilder(){ + + QueryStringQueryBuilder aggQuery = QueryBuilders.queryString("*"); + + SearchRequestBuilder request = oaiEsClient.getOaiESClient() + .prepareSearch(oaiEsClient.getEsIndex()) + .setTypes(oaiEsClient.getEsType()) + .setQuery(aggQuery) + .addField("project.value") + .setSize(100000); + + SearchResponse getRecordListItems = request.execute().actionGet(); + + for (SearchHit hit : getRecordListItems.getHits().getHits()){ + + projects.add(hit.getFields().get("project.value").values().get(0) + .toString()); + } + + + for (String project : projects){ + SetType set = new SetType(); + + set.setSetName("project"); + set.setSetSpec("project:" + project); + + setList.getSet().add(set); + } + + return setList; + + } + +} -- GitLab