Fix expansion of matches to respect character positions as well as token positions
Change-Id: Ic84282613730540c7f15638dfd76cc15c032f189
diff --git a/src/main/java/de/ids_mannheim/korap/KrillIndex.java b/src/main/java/de/ids_mannheim/korap/KrillIndex.java
index d3d507a..bbeb953 100644
--- a/src/main/java/de/ids_mannheim/korap/KrillIndex.java
+++ b/src/main/java/de/ids_mannheim/korap/KrillIndex.java
@@ -1119,6 +1119,8 @@
&& spanContext[0] < spanContext[1]) {
match.setStartPos(spanContext[0]);
match.setEndPos(spanContext[1]);
+ match.potentialStartPosChar = spanContext[2];
+ match.potentialEndPosChar = spanContext[3];
match.startMore = false;
match.endMore = false;
}
diff --git a/src/main/java/de/ids_mannheim/korap/response/Match.java b/src/main/java/de/ids_mannheim/korap/response/Match.java
index b3f045d..d3f45f4 100644
--- a/src/main/java/de/ids_mannheim/korap/response/Match.java
+++ b/src/main/java/de/ids_mannheim/korap/response/Match.java
@@ -88,7 +88,7 @@
private static final int PB_MARKER = -99999;
// This advices the java compiler to ignore all loggings
- public static final boolean DEBUG = false;
+ public static final boolean DEBUG = true;
// Mapper for JSON serialization
ObjectMapper mapper = new ObjectMapper();
@@ -1753,7 +1753,7 @@
startOffsetChar = spanContext[2];
endOffsetChar = spanContext[3];
if (DEBUG)
- log.trace("Got context is based from span {}-{}/{}-{}",
+ log.trace("Got context based on span {}-{}/{}-{}",
startOffset, endOffset, startOffsetChar, endOffsetChar);
};
diff --git a/src/main/java/de/ids_mannheim/korap/response/match/HighlightCombinator.java b/src/main/java/de/ids_mannheim/korap/response/match/HighlightCombinator.java
index 346a259..93c1f67 100644
--- a/src/main/java/de/ids_mannheim/korap/response/match/HighlightCombinator.java
+++ b/src/main/java/de/ids_mannheim/korap/response/match/HighlightCombinator.java
@@ -156,6 +156,10 @@
// add this element number temporarily on the stack
tempStack.push(eold);
+ // There are no more elements on the balance stack
+ if (this.balanceStack.empty())
+ break;
+
// Check next element
eold = this.balanceStack.pop();
};
diff --git a/src/main/java/de/ids_mannheim/korap/response/match/HighlightCombinatorElement.java b/src/main/java/de/ids_mannheim/korap/response/match/HighlightCombinatorElement.java
index f0ead37..d2701a6 100644
--- a/src/main/java/de/ids_mannheim/korap/response/match/HighlightCombinatorElement.java
+++ b/src/main/java/de/ids_mannheim/korap/response/match/HighlightCombinatorElement.java
@@ -30,7 +30,7 @@
private final static Logger log = LoggerFactory.getLogger(Match.class);
// This advices the java compiler to ignore all loggings
- public static final boolean DEBUG = false;
+ public static final boolean DEBUG = true;
// Constructor for highlighting elements
public HighlightCombinatorElement (byte type, int number) {