Implemented dynamic window for sorting in FocusSpans.
Change-Id: Ie59bae8a116e6377f4fe9f7d400cdc55207785c1
diff --git a/src/test/java/de/ids_mannheim/korap/index/TestFocusIndex.java b/src/test/java/de/ids_mannheim/korap/index/TestFocusIndex.java
new file mode 100644
index 0000000..2f668e2
--- /dev/null
+++ b/src/test/java/de/ids_mannheim/korap/index/TestFocusIndex.java
@@ -0,0 +1,46 @@
+package de.ids_mannheim.korap.index;
+
+import java.io.IOException;
+
+import org.apache.lucene.index.Term;
+import org.apache.lucene.search.spans.SpanTermQuery;
+import org.junit.Test;
+
+import de.ids_mannheim.korap.KrillIndex;
+import de.ids_mannheim.korap.query.SpanFocusQuery;
+import de.ids_mannheim.korap.query.SpanNextQuery;
+import de.ids_mannheim.korap.query.SpanRelationQuery;
+import de.ids_mannheim.korap.response.Match;
+import de.ids_mannheim.korap.response.Result;
+
+public class TestFocusIndex {
+ private KrillIndex ki;
+ private Result kr;
+
+ public TestFocusIndex () throws IOException {
+ ki = new KrillIndex();
+ }
+
+ /**
+ * Check Skipto focus spans
+ * */
+ @Test
+ public void testCase12() throws IOException {
+ ki.addDoc(TestRelationIndex.createFieldDoc0());
+ ki.addDoc(TestRelationIndex.createFieldDoc1());
+ ki.commit();
+ SpanRelationQuery sq = new SpanRelationQuery(new SpanTermQuery(
+ new Term("base", ">:xip/syntax-dep_rel")), true);
+ sq.setSourceClass((byte) 1);
+
+ SpanFocusQuery sfq = new SpanFocusQuery(sq, (byte) 1);
+ sfq.setSorted(false);
+ SpanTermQuery stq = new SpanTermQuery(new Term("base", "s:c"));
+ SpanNextQuery snq = new SpanNextQuery(stq, sfq);
+
+ kr = ki.search(snq, (short) 20);
+ for (Match m : kr.getMatches()) {
+ System.out.println(m.getStartPos() + " " + m.getEndPos());
+ }
+ }
+}
diff --git a/src/test/java/de/ids_mannheim/korap/index/TestNextIndex.java b/src/test/java/de/ids_mannheim/korap/index/TestNextIndex.java
index 23674b6..0465585 100644
--- a/src/test/java/de/ids_mannheim/korap/index/TestNextIndex.java
+++ b/src/test/java/de/ids_mannheim/korap/index/TestNextIndex.java
@@ -13,9 +13,12 @@
import org.junit.runners.JUnit4;
import de.ids_mannheim.korap.KrillIndex;
+import de.ids_mannheim.korap.query.SpanClassQuery;
import de.ids_mannheim.korap.query.SpanElementQuery;
+import de.ids_mannheim.korap.query.SpanFocusQuery;
import de.ids_mannheim.korap.query.SpanNextQuery;
import de.ids_mannheim.korap.query.wrap.SpanSequenceQueryWrapper;
+import de.ids_mannheim.korap.response.Match;
import de.ids_mannheim.korap.response.Result;
@RunWith(JUnit4.class)
@@ -262,6 +265,23 @@
assertEquals("StartPos", 0, kr.getMatch(0).startPos);
assertEquals("EndPos", 3, kr.getMatch(0).endPos);
+ sq = new SpanNextQuery(new SpanTermQuery(new Term("base", "s:c")),
+ new SpanNextQuery(new SpanFocusQuery(new SpanClassQuery(
+ new SpanTermQuery(new Term("base", "s:d")), (byte) 1),
+ (byte) 1), new SpanFocusQuery(new SpanClassQuery(
+ new SpanTermQuery(new Term("base", "s:b")), (byte) 2),
+ (byte) 2)));
+
+ kr = ki.search(sq, (short) 10);
+ assertEquals("doc-number", 2, kr.getMatch(0).getLocalDocID());
+ assertEquals("StartPos", 0, kr.getMatch(0).startPos);
+ assertEquals("EndPos", 3, kr.getMatch(0).endPos);
+
+ // for (Match km : kr.getMatches()) {
+ // System.out.println(km.getStartPos() + "," + km.getEndPos()
+ // + " "
+ // + km.getSnippetBrackets());
+ // }
}
diff --git a/src/test/java/de/ids_mannheim/korap/index/TestRelationIndex.java b/src/test/java/de/ids_mannheim/korap/index/TestRelationIndex.java
index d8f79a7..7df32ea 100644
--- a/src/test/java/de/ids_mannheim/korap/index/TestRelationIndex.java
+++ b/src/test/java/de/ids_mannheim/korap/index/TestRelationIndex.java
@@ -14,6 +14,7 @@
import de.ids_mannheim.korap.query.SpanClassQuery;
import de.ids_mannheim.korap.query.SpanElementQuery;
import de.ids_mannheim.korap.query.SpanFocusQuery;
+import de.ids_mannheim.korap.query.SpanNextQuery;
import de.ids_mannheim.korap.query.SpanRelationMatchQuery;
import de.ids_mannheim.korap.query.SpanRelationQuery;
import de.ids_mannheim.korap.query.SpanSegmentQuery;
@@ -71,7 +72,7 @@
}
- private FieldDocument createFieldDoc0 () {
+ public static FieldDocument createFieldDoc0() {
FieldDocument fd = new FieldDocument();
fd.addString("ID", "doc-0");
fd.addTV(
@@ -96,7 +97,7 @@
}
- private FieldDocument createFieldDoc1 () {
+ public static FieldDocument createFieldDoc1() {
FieldDocument fd = new FieldDocument();
fd.addString("ID", "doc-1");
fd.addTV(
@@ -903,9 +904,6 @@
assertEquals((long) 1, kr.getTotalResults());
assertEquals(2, kr.getMatch(0).getStartPos());
assertEquals(7, kr.getMatch(0).getEndPos());
-
- // for (Match m : kr.getMatches()) {
- // System.out.println(m.getStartPos() + " " + m.getEndPos());
- // }
}
+
}