From 9eac6e7f15235c9dc795cdb22858f4ec89014899 Mon Sep 17 00:00:00 2001
From: "Stefan E. Funk" <funk@sub.uni-goettingen.de>
Date: Fri, 11 Jun 2021 14:45:58 +0200
Subject: [PATCH] Add mustNot

---
 .../info/textgrid/middleware/SetDeliverer.java  | 17 ++++++++---------
 1 file changed, 8 insertions(+), 9 deletions(-)

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 7ece3838..5b8f3b83 100644
--- a/oaipmh-core/src/main/java/info/textgrid/middleware/SetDeliverer.java
+++ b/oaipmh-core/src/main/java/info/textgrid/middleware/SetDeliverer.java
@@ -98,10 +98,6 @@ public class SetDeliverer {
     // AggregationBuilder filterPublicProjects = null;
     // AggregationBuilder projectNameAndID = null;
 
-    // ################# REMOVE !!!!!!!!!!!!!!!!!!!!
-    this.textgrid=true;
-    // ################# REMOVE !!!!!!!!!!!!!!!!!!!!
-
     // Assemble TG ES request.
     if (this.textgrid) {
       Script mergeProjectIDandProjectName =
@@ -126,14 +122,17 @@ public class SetDeliverer {
     // Assemble DH ES request.
     else if (this.dariah) {
 
-      Script collectionID = new Script("doc['administrativeMetadata:dcterms:identifier']");
+      Script collectionID = new Script("doc['administrativeMetadata.dcterms:identifier']");
 
       AggregationBuilder filterCollections = AggregationBuilders.filter("collectionFilter",
-          QueryBuilders.boolQuery().must(QueryBuilders.matchPhraseQuery(
-              "descriptiveMetada.dc:format", TextGridMimetypes.DARIAH_COLLECTION)));
+          QueryBuilders.boolQuery()
+              .mustNot(QueryBuilders.existsQuery("descriptiveMetadata.dc:relation"))
+              .must(QueryBuilders.matchPhraseQuery("descriptiveMetadata.dc:format",
+                  TextGridMimetypes.DARIAH_COLLECTION)));
 
-      AggregationBuilder filterTerm =
-          AggregationBuilders.terms("collectionTerm").script(collectionID).size(DH_SIZE);
+      AggregationBuilder filterTerm = AggregationBuilders.terms("collectionTerm")
+          .script(collectionID)
+          .size(DH_SIZE);
 
       filterCollections.subAggregation(filterTerm);
 
-- 
GitLab