use of org.apache.lucene.search.spans.SpanQuery in project Krill by KorAP.
the class TestWithinIndex method indexExample1d.
@Test
public void indexExample1d() throws IOException {
// Cases 9, 12, 13
KrillIndex ki = new KrillIndex();
// <a>x<a>y<a>zhij</a>hij</a>hij</a>
FieldDocument fd = new FieldDocument();
fd.addTV("base", "x y z h i j h i j h i j ", // 1
"[(0-3)s:x|<>:a$<b>64<i>0<i>36<i>12<b>0]" + // 2
"[(3-6)s:y|<>:a$<b>64<i>3<i>27<i>9<b>0]" + // 3
"[(6-9)s:z|<>:a$<b>64<i>6<i>18<i>6<b>0]" + // 4
"[(9-12)s:h]" + // 5
"[(12-15)s:i]" + // 6
"[(15-18)s:j]" + // 7
"[(18-21)s:h]" + // 8
"[(21-24)s:i]" + // 9
"[(24-27)s:j]" + // 10
"[(27-30)s:h]" + // 11
"[(30-33)s:i]" + // 12
"[(33-36)s:j]");
ki.addDoc(fd);
fd = new FieldDocument();
fd.addTV("base", "x y z h ", // 1
"[(0-3)s:x]" + // 2
"[(3-6)s:y]" + // 3
"[(6-9)s:z]" + // 4
"[(9-12)s:h]");
ki.addDoc(fd);
// <a>x<a>y<a>zabc</a>abc</a>abc</a>
fd = new FieldDocument();
fd.addTV("base", "x y z a b c a b c a b c ", // 1
"[(0-3)s:x|<>:a$<b>64<i>0<i>36<i>12<b>0]" + // 2
"[(3-6)s:y|<>:a$<b>64<i>3<i>27<i>9<b>0]" + // 3
"[(6-9)s:z|<>:a$<b>64<i>6<i>18<i>6<b>0]" + // 4
"[(9-12)s:a]" + // 5
"[(12-15)s:b]" + // 6
"[(15-18)s:c]" + // 7
"[(18-21)s:a]" + // 8
"[(21-24)s:b]" + // 9
"[(24-27)s:c]" + // 10
"[(27-30)s:a]" + // 11
"[(30-33)s:b]" + // 12
"[(33-36)s:c]");
ki.addDoc(fd);
// Save documents
ki.commit();
SpanQuery sq;
Result kr;
sq = new SpanElementQuery("base", "a");
kr = ki.search(sq, (short) 15);
sq = new SpanWithinQuery(new SpanElementQuery("base", "a"), new SpanTermQuery(new Term("base", "s:h")));
kr = ki.search(sq, (short) 15);
assertEquals("totalResults", kr.getTotalResults(), 6);
assertEquals("StartPos (0)", 0, kr.getMatch(0).startPos);
assertEquals("EndPos (0)", 12, kr.getMatch(0).endPos);
assertEquals("Doc (0)", 0, kr.getMatch(0).internalDocID);
assertEquals("StartPos (1)", 0, kr.getMatch(1).startPos);
assertEquals("EndPos (1)", 12, kr.getMatch(1).endPos);
assertEquals("Doc (1)", 0, kr.getMatch(1).internalDocID);
assertEquals("StartPos (2)", 0, kr.getMatch(2).startPos);
assertEquals("EndPos (2)", 12, kr.getMatch(2).endPos);
assertEquals("Doc (2)", 0, kr.getMatch(2).internalDocID);
assertEquals("StartPos (3)", 1, kr.getMatch(3).startPos);
assertEquals("EndPos (3)", 9, kr.getMatch(3).endPos);
assertEquals("Doc (3)", 0, kr.getMatch(3).internalDocID);
assertEquals("StartPos (4)", 1, kr.getMatch(4).startPos);
assertEquals("EndPos (4)", 9, kr.getMatch(4).endPos);
assertEquals("Doc (4)", 0, kr.getMatch(4).internalDocID);
assertEquals("StartPos (5)", 2, kr.getMatch(5).startPos);
assertEquals("EndPos (5)", 6, kr.getMatch(5).endPos);
assertEquals("Doc (5)", 0, kr.getMatch(5).internalDocID);
assertEquals(3, ki.numberOf("documents"));
}
use of org.apache.lucene.search.spans.SpanQuery in project Krill by KorAP.
the class TestWithinIndex method indexExample7.
@Test
public void indexExample7() throws IOException {
KrillIndex ki = new KrillIndex();
// 4,5,11,13
// x<a>x h</a>i j h<a>i j</a>
FieldDocument fd = new FieldDocument();
fd.addTV("base", "xx hi j hi j", "[(0-1)s:x|i:x|_0$<i>0<i>1|-:a$<i>2|-:t$<i>8]" + "[(1-2)s:x|i:x|_1$<i>1<i>2|<>:a$<b>64<i>1<i>4<i>3<b>0]" + "[(3-4)s:h|i:h|_2$<i>3<i>4]" + "[(4-5)s:i|i:i|_3$<i>4<i>5]" + "[(6-7)s:j|i:j|_4$<i>6<i>7]" + "[(8-9)s:h|i:h|_5$<i>8<i>9]" + "[(9-10)s:i|i:i|_6$<i>9<i>10|<>:a$<b>64<i>9<i>12<i>8<b>0]" + "[(11-12)s:j|i:j|_7$<i>11<i>12]");
ki.addDoc(fd);
// Save documents
ki.commit();
assertEquals(1, ki.numberOf("documents"));
SpanQuery sq = new SpanWithinQuery(new SpanElementQuery("base", "a"), new SpanNextQuery(new SpanTermQuery(new Term("base", "s:h")), new SpanNextQuery(new SpanTermQuery(new Term("base", "s:i")), new SpanTermQuery(new Term("base", "s:j")))));
Result kr = ki.search(sq, (short) 10);
assertEquals("totalResults", kr.getTotalResults(), 0);
}
use of org.apache.lucene.search.spans.SpanQuery in project Krill by KorAP.
the class TestWithinIndex method indexExample3Offsets.
@Test
public void indexExample3Offsets() throws IOException {
KrillIndex ki = new KrillIndex();
// Er schrie: <s>"Das war ich!"</s>
FieldDocument fd = new FieldDocument();
fd = new FieldDocument();
fd.addTV("base", "Er schrie: \"Das war ich!\" und ging.", "[(0-2)s:Er|_0$<i>0<i>3]" + "[(3-9)s:schrie|_1$<i>3<i>9]" + "[(12-15)s:Das|_2$<i>12<i>15|<>:sentence$<b>64<i>11<i>25<i>5<b>0]" + "[(16-19)s:war|_3$<i>16<i>19]" + "[(20-23)s:ich|_4$<i>20<i>23]" + "[(26-29)s:und|_5$<i>26<i>29]" + "[(30-34)s:ging|_6$<i>30<i>34]");
ki.addDoc(fd);
// Save documents
ki.commit();
SpanQuery sq = new SpanClassQuery(new SpanElementQuery("base", "sentence"), (byte) 3);
Result kr;
kr = ki.search(sq, 0, (short) 15, true, (short) 1, true, (short) 1);
assertEquals("totalResults", kr.getTotalResults(), 1);
assertEquals("... schrie: [[\"{3:Das war ich}!\"]] und ...", kr.getMatch(0).getSnippetBrackets());
assertEquals("<span class=\"context-left\"><span class=\"more\"></span>schrie: </span><span class=\"match\"><mark>"<mark class=\"class-3 level-0\">Das war ich</mark>!"</mark></span><span class=\"context-right\"> und<span class=\"more\"></span></span>", kr.getMatch(0).getSnippetHTML());
kr = ki.search(sq, 0, (short) 15, true, (short) 0, true, (short) 0);
assertEquals("... [[\"{3:Das war ich}!\"]] ...", kr.getMatch(0).getSnippetBrackets());
assertEquals("totalResults", kr.getTotalResults(), 1);
kr = ki.search(sq, 0, (short) 15, true, (short) 6, true, (short) 6);
assertEquals("Er schrie: [[\"{3:Das war ich}!\"]] und ging.", kr.getMatch(0).getSnippetBrackets());
assertEquals("totalResults", kr.getTotalResults(), 1);
kr = ki.search(sq, 0, (short) 15, true, (short) 2, true, (short) 2);
assertEquals("Er schrie: [[\"{3:Das war ich}!\"]] und ging ...", kr.getMatch(0).getSnippetBrackets());
assertEquals("totalResults", kr.getTotalResults(), 1);
sq = new SpanClassQuery(new SpanWithinQuery(new SpanElementQuery("base", "sentence"), new SpanClassQuery(new SpanTermQuery(new Term("base", "s:Das")), (byte) 2)), (byte) 1);
kr = ki.search(sq, (short) 15);
assertEquals("Er schrie: [[\"{1:{2:Das} war ich}!\"]] und ging.", kr.getMatch(0).getSnippetBrackets());
assertEquals("totalResults", kr.getTotalResults(), 1);
sq = new SpanClassQuery(new SpanWithinQuery(new SpanElementQuery("base", "sentence"), new SpanClassQuery(new SpanTermQuery(new Term("base", "s:war")), (byte) 2)), (byte) 1);
kr = ki.search(sq, (short) 15);
assertEquals("Er schrie: [[\"{1:Das {2:war} ich}!\"]] und ging.", kr.getMatch(0).getSnippetBrackets());
assertEquals("totalResults", kr.getTotalResults(), 1);
sq = new SpanClassQuery(new SpanWithinQuery(new SpanElementQuery("base", "sentence"), new SpanClassQuery(new SpanTermQuery(new Term("base", "s:ich")), (byte) 2)), (byte) 1);
kr = ki.search(sq, (short) 15);
assertEquals("Er schrie: [[\"{1:Das war {2:ich}}!\"]] und ging.", kr.getMatch(0).getSnippetBrackets());
assertEquals("totalResults", kr.getTotalResults(), 1);
sq = new SpanClassQuery(new SpanWithinQuery(new SpanElementQuery("base", "sentence"), new SpanClassQuery(new SpanTermQuery(new Term("base", "s:und")), (byte) 2)), (byte) 1);
kr = ki.search(sq, (short) 15);
assertEquals("totalResults", kr.getTotalResults(), 0);
sq = new SpanClassQuery(new SpanWithinQuery(new SpanElementQuery("base", "sentence"), new SpanClassQuery(new SpanTermQuery(new Term("base", "s:schrie")), (byte) 2)), (byte) 1);
kr = ki.search(sq, (short) 15);
assertEquals("totalResults", kr.getTotalResults(), 0);
}
use of org.apache.lucene.search.spans.SpanQuery in project Krill by KorAP.
the class TestKrillQuery method KorapSequenceQuery5.
@Test
public void KorapSequenceQuery5() throws QueryException {
QueryBuilder kq = new QueryBuilder("field");
SpanQuery sq = kq.seq(kq.seg("try1")).append(kq.seg("try2")).withConstraint(2, 3, true).toQuery();
assertEquals("spanDistance(field:try1, field:try2, [(w[2:3], ordered, excluded)])", sq.toString());
}
use of org.apache.lucene.search.spans.SpanQuery in project Krill by KorAP.
the class TestKrillQuery method KorapSequenceQuery8.
@Test
public void KorapSequenceQuery8() throws QueryException {
QueryBuilder kq = new QueryBuilder("field");
SpanQuery sq = kq.seq(kq.seg("try1")).append(kq.seg("try2")).append("try3").withConstraint(5, 6).withConstraint(2, 3, "s", true).toQuery();
assertEquals("spanMultipleDistance(spanMultipleDistance(field:try1, field:try2, [(w[5:6], ordered, notExcluded), (s[2:3], ordered, excluded)]), field:try3, [(w[5:6], ordered, notExcluded), (s[2:3], ordered, excluded)])", sq.toString());
}
Aggregations