Make large context group optional and disabled by default [AI-assisted]
Change-Id: I2b619a15f5aa6d99b7637b883b28737de3274d26
diff --git a/Changes b/Changes
index fdbc55a..7d7df63 100644
--- a/Changes
+++ b/Changes
@@ -3,6 +3,7 @@
- Add a large-context group allowing users to access larger context by request [AI-assisted, #745]
- Apply new kwic and shrinking properties for kustvakt-dnb
- Fix handling non-existent large context group
+- Make large context group optional and disabled by default [AI-assisted]
# version 1.2-SNAPSHOT
diff --git a/src/main/java/de/ids_mannheim/korap/config/KustvaktConfiguration.java b/src/main/java/de/ids_mannheim/korap/config/KustvaktConfiguration.java
index 7ce4845..3d8dafb 100644
--- a/src/main/java/de/ids_mannheim/korap/config/KustvaktConfiguration.java
+++ b/src/main/java/de/ids_mannheim/korap/config/KustvaktConfiguration.java
@@ -65,6 +65,7 @@
// private int maxTokenMatch; // EM: Not implemented yet
private int maxTokenContextLarge;
+ private boolean largeContextGroupEnabled;
private int maxhits;
private int returnhits;
@@ -249,6 +250,9 @@
maxTokenContextLarge = Integer.parseInt(properties.getProperty(
"max.token.context.size.large", "0"));
+ largeContextGroupEnabled = Boolean.parseBoolean(properties.getProperty(
+ "large.context.group.enabled", "false"));
+
// Timeout validity in milis
guestTimeout = Integer.parseInt(properties.getProperty(
"timeout.guest", "10000"));
diff --git a/src/main/java/de/ids_mannheim/korap/init/Initializator.java b/src/main/java/de/ids_mannheim/korap/init/Initializator.java
index 353cc09..af2f57c 100644
--- a/src/main/java/de/ids_mannheim/korap/init/Initializator.java
+++ b/src/main/java/de/ids_mannheim/korap/init/Initializator.java
@@ -68,7 +68,9 @@
clientService.createInitialSuperClient(
OAuth2InitClientService.OUTPUT_FILENAME);
}
- createLargeContextGroup ();
+ if (config.isLargeContextGroupEnabled()) {
+ createLargeContextGroup();
+ }
vcLoader.apiVersion = apiVersion;
Thread t = new Thread(vcLoader);
@@ -96,7 +98,9 @@
queryService.handlePutRequest("system", "system", "system-q", q,
apiVersion);
- createLargeContextGroup ();
+ if (config.isLargeContextGroupEnabled()) {
+ createLargeContextGroup();
+ }
}
private void createLargeContextGroup () throws KustvaktException {
diff --git a/src/main/java/de/ids_mannheim/korap/rewrite/QueryContextRewrite.java b/src/main/java/de/ids_mannheim/korap/rewrite/QueryContextRewrite.java
index 470368d..1c72666 100644
--- a/src/main/java/de/ids_mannheim/korap/rewrite/QueryContextRewrite.java
+++ b/src/main/java/de/ids_mannheim/korap/rewrite/QueryContextRewrite.java
@@ -30,7 +30,9 @@
public KoralNode rewriteQuery (KoralNode node, KustvaktConfiguration config,
User user, double apiVersion) throws KustvaktException {
- int maxContext = isInLargeContextGroup(user)
+ boolean useLargeContext = config.isLargeContextGroupEnabled()
+ && isInLargeContextGroup(user);
+ int maxContext = useLargeContext
? config.getMaxTokenContextLarge()
: config.getMaxTokenContext();
if (maxContext > 0) {
diff --git a/src/test/resources/kustvakt-test.conf b/src/test/resources/kustvakt-test.conf
index 9cd1a9e..8f7cf6a 100644
--- a/src/test/resources/kustvakt-test.conf
+++ b/src/test/resources/kustvakt-test.conf
@@ -49,6 +49,7 @@
# Virtual corpus and queries
max.user.persistent.queries = 5
max.token.context.size = 40
+large.context.group.enabled = true
max.token.context.size.large = 50
# default false