Adding availability to default fields in matchinfo
Change-Id: I18565175676bfc6e87dd78e0bf8ea41c27e3198b
diff --git a/Changes b/Changes
index b993062..88599ac 100644
--- a/Changes
+++ b/Changes
@@ -1,4 +1,4 @@
-0.55.8 2017-05-05
+0.55.8 2017-05-29
- [feature] Retrieve and display pagebreaks (diewald)
- [bugfix] Handle invalid dates in input (diewald)
- [feature] Support availability meta data (diewald)
diff --git a/src/main/java/de/ids_mannheim/korap/KrillIndex.java b/src/main/java/de/ids_mannheim/korap/KrillIndex.java
index de66d50..b58ef0c 100644
--- a/src/main/java/de/ids_mannheim/korap/KrillIndex.java
+++ b/src/main/java/de/ids_mannheim/korap/KrillIndex.java
@@ -1074,11 +1074,17 @@
Terms docTerms = atomic.reader().getTermVector(localDocID,
field);
+ // The following fields should be lifted for the match
HashSet<String> fields = (HashSet<String>) new Krill().getMeta()
.getFields().clone();
+ // Lift primary field
fields.add(field);
+ // Lift all fields
+ if (fields.contains("@all"))
+ fields = null;
+
// Load the necessary fields of the document
Document doc = atomic.reader().document(localDocID, fields);
diff --git a/src/main/java/de/ids_mannheim/korap/KrillMeta.java b/src/main/java/de/ids_mannheim/korap/KrillMeta.java
index a6aaade..330cbdb 100644
--- a/src/main/java/de/ids_mannheim/korap/KrillMeta.java
+++ b/src/main/java/de/ids_mannheim/korap/KrillMeta.java
@@ -43,13 +43,25 @@
// Lift following fields per default
// These fields are chosen for <legacy /> reasons
- for (String field : new String[] { "ID", "UID", "textSigle", "corpusID",
- "author", "title", "subTitle", "textClass", "pubPlace",
- "pubDate",
- // "foundries",
+ for (String field : new String[] {
+ "ID",
+ "UID",
+ "textSigle",
+ "corpusID",
+ "author",
+ "title",
+ "subTitle",
+ "textClass",
+ "pubPlace",
+ "pubDate",
+ // "foundries",
// "tokenization",
// New:
- "layerInfos", "docSigle", "corpusSigle", }) {
+ "availability",
+ "layerInfos",
+ "docSigle",
+ "corpusSigle"
+ }) {
fields.add(field);
};
diff --git a/src/test/java/de/ids_mannheim/korap/index/TestMatchIdentifier.java b/src/test/java/de/ids_mannheim/korap/index/TestMatchIdentifier.java
index c208a3e..0500050 100644
--- a/src/test/java/de/ids_mannheim/korap/index/TestMatchIdentifier.java
+++ b/src/test/java/de/ids_mannheim/korap/index/TestMatchIdentifier.java
@@ -649,11 +649,23 @@
res.at("/snippet").asText());
};
+ @Test
+ public void indexWithFieldInfo () throws IOException, QueryException {
+ KrillIndex ki = new KrillIndex();
+ ki.addDoc(createSimpleFieldDoc());
+ ki.commit();
+
+ Match km = ki.getMatchInfo("match-c1!d1-p7-9(4)8-8(2)7-8", "tokens",
+ null, null, false, false);
+ assertEquals(km.getAvailability(), "CC-BY-SA");
+ };
+
private FieldDocument createSimpleFieldDoc () {
FieldDocument fd = new FieldDocument();
fd.addString("corpusID", "c1");
fd.addString("ID", "d1");
+ fd.addString("availability", "CC-BY-SA");
fd.addTV("tokens", "abcabcabac",
"[(0-1)s:a|i:a|f/m:eins|f/y:one|x/o:erstens|it/is:1|>:x/rel:a$<b>32<i>4<s>0<s>0<s>0|_0$<i>0<i>1|-:t$<i>10]"
+ "[(1-2)s:b|i:b|f/m:zwei|f/y:two|x/o:zweitens|it/is:2|_1$<i>1<i>2]"