blob: eacf9210ecfa4604a0950f7b7ed523ca9b2762f9 [file] [log] [blame]
Akrond7d7b1f2016-06-25 00:31:16 +02001package de.ids_mannheim.korap;
2
3import java.util.*;
4import java.io.IOException;
5
6import com.fasterxml.jackson.annotation.*;
7import com.fasterxml.jackson.databind.ObjectMapper;
8import com.fasterxml.jackson.databind.JsonNode;
9import com.fasterxml.jackson.databind.node.ObjectNode;
10
11import de.ids_mannheim.korap.response.Notifications;
12
13import java.nio.ByteBuffer;
14
15import org.slf4j.Logger;
16import org.slf4j.LoggerFactory;
17
18/**
19 * Create a Statistics object.
20 *
21 * This is early work and highliy experimental!
Akron08f4ceb2016-08-03 23:53:32 +020022 *
Akrond7d7b1f2016-06-25 00:31:16 +020023 * <blockquote><pre>
24 * KrillStats ks = new KrillStats(json);
25 * </pre></blockquote>
Akron08f4ceb2016-08-03 23:53:32 +020026 *
Akrond7d7b1f2016-06-25 00:31:16 +020027 * Should serialize to something like
Akron08f4ceb2016-08-03 23:53:32 +020028 *
Akrond7d7b1f2016-06-25 00:31:16 +020029 * "stats" : {
Akron08f4ceb2016-08-03 23:53:32 +020030 * "@type" : "koral:stats",
31 * "collection" : [
32 * {
33 * "@type" : "stats:collection",
34 * "foundry" : "base",
35 * "layer" : "s",
36 * "key" : "s",
37 * "value" : 450
38 * },
39 * {
40 * "@type" : "stats:collection",
41 * "key" : "texts",
42 * "value" : 2
Akrond7d7b1f2016-06-25 00:31:16 +020043 * }
Akron08f4ceb2016-08-03 23:53:32 +020044 * ]
45 * }
46 *
Akrond7d7b1f2016-06-25 00:31:16 +020047 *
48 * @author diewald
49 */
50/*
51 * TODO: THIS IS CURRENTLY HIGHLY EXPERIMENTAL
Akron417eaa92017-01-13 18:00:15 +010052 * TODO: Stats may use Column Stride fields (or DocValues)
53 * (or similiar concepts) https://issues.apache.org/jira/browse/LUCENE-1231
54 * https://issues.apache.org/jira/browse/LUCENE-3108
Akrond7d7b1f2016-06-25 00:31:16 +020055 */
56public final class KrillStats extends Notifications {
57
58 // Logger
Akron08f4ceb2016-08-03 23:53:32 +020059 private final static Logger log = LoggerFactory.getLogger(KrillStats.class);
Akrond7d7b1f2016-06-25 00:31:16 +020060
61 // This advices the java compiler to ignore all loggings
62 public static final boolean DEBUG = false;
63
64
65 /**
66 * Construct a new KrillStats.
67 *
68 */
69 public KrillStats () {};
70
Akron08f4ceb2016-08-03 23:53:32 +020071
Akrond7d7b1f2016-06-25 00:31:16 +020072 @Override
73 public JsonNode toJsonNode () {
74 ObjectMapper mapper = new ObjectMapper();
75 ObjectNode json = mapper.createObjectNode();
76
77 json.put("@type", "koral:stats");
78
79 return (JsonNode) json;
Akron08f4ceb2016-08-03 23:53:32 +020080 }
Akrond7d7b1f2016-06-25 00:31:16 +020081};