summaryrefslogtreecommitdiffstats
path: root/container-search/src/test/java/com/yahoo/prelude/fastsearch
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@gmail.com>2022-05-03 20:22:43 +0200
committerGitHub <noreply@github.com>2022-05-03 20:22:43 +0200
commitdde286759cc3384f07b957364d3c9666aff60896 (patch)
treefa9b6fe4f2caef38b3536f92ceb703f49afc713c /container-search/src/test/java/com/yahoo/prelude/fastsearch
parentde8e6f7128dc6489800eae8ce8cdcc6e3414475e (diff)
Revert "Use schema-info"
Diffstat (limited to 'container-search/src/test/java/com/yahoo/prelude/fastsearch')
-rw-r--r--container-search/src/test/java/com/yahoo/prelude/fastsearch/SlimeSummaryTestCase.java69
-rw-r--r--container-search/src/test/java/com/yahoo/prelude/fastsearch/partial-summary1.cfg10
-rw-r--r--container-search/src/test/java/com/yahoo/prelude/fastsearch/partial-summary2.cfg12
-rw-r--r--container-search/src/test/java/com/yahoo/prelude/fastsearch/partial-summary3.cfg10
-rw-r--r--container-search/src/test/java/com/yahoo/prelude/fastsearch/summary.cfg36
-rw-r--r--container-search/src/test/java/com/yahoo/prelude/fastsearch/test/DocsumDefinitionTestCase.java57
-rw-r--r--container-search/src/test/java/com/yahoo/prelude/fastsearch/test/FastSearcherTestCase.java25
-rw-r--r--container-search/src/test/java/com/yahoo/prelude/fastsearch/test/documentdb-info.cfg353
8 files changed, 479 insertions, 93 deletions
diff --git a/container-search/src/test/java/com/yahoo/prelude/fastsearch/SlimeSummaryTestCase.java b/container-search/src/test/java/com/yahoo/prelude/fastsearch/SlimeSummaryTestCase.java
index a174bde3902..8b21d1e03b2 100644
--- a/container-search/src/test/java/com/yahoo/prelude/fastsearch/SlimeSummaryTestCase.java
+++ b/container-search/src/test/java/com/yahoo/prelude/fastsearch/SlimeSummaryTestCase.java
@@ -10,8 +10,6 @@ import com.yahoo.prelude.hitfield.XMLString;
import com.yahoo.search.result.FeatureData;
import com.yahoo.search.result.Hit;
import com.yahoo.search.result.StructuredData;
-import com.yahoo.search.schema.DocumentSummary;
-import com.yahoo.search.schema.Schema;
import com.yahoo.slime.BinaryFormat;
import com.yahoo.slime.Cursor;
import com.yahoo.slime.Slime;
@@ -45,7 +43,7 @@ public class SlimeSummaryTestCase {
@Test
public void testDecodingEmpty() {
- DocsumDefinitionSet docsum = createDocsumDefinitionSet();
+ DocsumDefinitionSet docsum = createDocsumDefinitionSet(summary_cf);
FastHit hit = new FastHit();
assertNull(docsum.lazyDecode("default", emptySummary(), hit));
assertNull(hit.getField("integer_field"));
@@ -71,7 +69,7 @@ public class SlimeSummaryTestCase {
@Test
public void testTimeout() {
- DocsumDefinitionSet docsum = createDocsumDefinitionSet();
+ DocsumDefinitionSet docsum = createDocsumDefinitionSet(summary_cf);
FastHit hit = new FastHit();
assertEquals("Hit hit index:null/0/000000000000000000000000 (relevance 0.0) [fasthit, globalid: 0 0 0 0 0 0 0 0 0 0 0 0, partId: 0, distributionkey: 0] failed: Timed out....",
docsum.lazyDecode("default", timeoutSummary(), hit));
@@ -81,7 +79,7 @@ public class SlimeSummaryTestCase {
public void testDecoding() {
Tensor tensor1 = Tensor.from("tensor(x{},y{}):{{x:foo,y:bar}:0.1}");
Tensor tensor2 = Tensor.from("tensor(x[1],y[1]):{{x:0,y:0}:-0.3}");
- DocsumDefinitionSet docsum = createDocsumDefinitionSet();
+ DocsumDefinitionSet docsum = createDocsumDefinitionSet(summary_cf);
FastHit hit = new FastHit();
assertNull(docsum.lazyDecode("default", fullSummary(tensor1, tensor2), hit));
assertEquals(4, hit.getField("integer_field"));
@@ -129,10 +127,10 @@ public class SlimeSummaryTestCase {
@Test
public void testFieldAccessAPI() {
- DocsumDefinitionSet partialDocsum1 = createPartialDocsumDefinitionSet1();
- DocsumDefinitionSet partialDocsum2 = createPartialDocsumDefinitionSet2();
- DocsumDefinitionSet partialDocsum3 = createPartialDocsumDefinitionSet3();
- DocsumDefinitionSet fullDocsum = createDocsumDefinitionSet();
+ DocsumDefinitionSet partialDocsum1 = createDocsumDefinitionSet(partial_summary1_cf);
+ DocsumDefinitionSet partialDocsum2 = createDocsumDefinitionSet(partial_summary2_cf);
+ DocsumDefinitionSet partialDocsum3 = createDocsumDefinitionSet(partial_summary3_cf);
+ DocsumDefinitionSet fullDocsum = createDocsumDefinitionSet(summary_cf);
FastHit hit = new FastHit();
Map<String, Object> expected = new HashMap<>();
@@ -439,59 +437,14 @@ public class SlimeSummaryTestCase {
return buf.array();
}
- private DocsumDefinitionSet createDocsumDefinitionSet() {
- var schema = new Schema.Builder("test");
- var summary = new DocumentSummary.Builder("default");
- summary.add(new DocumentSummary.Field("integer_field", "integer"));
- summary.add(new DocumentSummary.Field("short_field", "short"));
- summary.add(new DocumentSummary.Field("byte_field", "byte"));
- summary.add(new DocumentSummary.Field("float_field", "float"));
- summary.add(new DocumentSummary.Field("double_field", "double"));
- summary.add(new DocumentSummary.Field("int64_field", "int64"));
- summary.add(new DocumentSummary.Field("string_field", "string"));
- summary.add(new DocumentSummary.Field("data_field", "data"));
- summary.add(new DocumentSummary.Field("longstring_field", "longstring"));
- summary.add(new DocumentSummary.Field("longdata_field", "longdata"));
- summary.add(new DocumentSummary.Field("xmlstring_field", "xmlstring"));
- summary.add(new DocumentSummary.Field("jsonstring_field", "jsonstring"));
- summary.add(new DocumentSummary.Field("tensor_field1", "tensor"));
- summary.add(new DocumentSummary.Field("tensor_field2", "tensor"));
- summary.add(new DocumentSummary.Field("summaryfeatures", "featuredata"));
- schema.add(summary.build());
- return new DocsumDefinitionSet(schema.build());
- }
-
- private DocsumDefinitionSet createPartialDocsumDefinitionSet1() {
- var schema = new Schema.Builder("test");
- var summary = new DocumentSummary.Builder("default");
- summary.add(new DocumentSummary.Field("integer_field", "integer"));
- summary.add(new DocumentSummary.Field("short_field", "short"));
- schema.add(summary.build());
- return new DocsumDefinitionSet(schema.build());
- }
-
- private DocsumDefinitionSet createPartialDocsumDefinitionSet2() {
- var schema = new Schema.Builder("test");
- var summary = new DocumentSummary.Builder("default");
- summary.add(new DocumentSummary.Field("integer_field", "integer"));
- summary.add(new DocumentSummary.Field("float_field", "float"));
- summary.add(new DocumentSummary.Field("double_field", "double"));
- schema.add(summary.build());
- return new DocsumDefinitionSet(schema.build());
- }
-
- private DocsumDefinitionSet createPartialDocsumDefinitionSet3() {
- var schema = new Schema.Builder("test");
- var summary = new DocumentSummary.Builder("default");
- summary.add(new DocumentSummary.Field("integer_field", "integer"));
- summary.add(new DocumentSummary.Field("string_field", "string"));
- schema.add(summary.build());
- return new DocsumDefinitionSet(schema.build());
+ private DocsumDefinitionSet createDocsumDefinitionSet(String configID) {
+ DocumentdbInfoConfig config = new ConfigGetter<>(DocumentdbInfoConfig.class).getConfig(configID);
+ return new DocsumDefinitionSet(config.documentdb(0));
}
private static class Utf8FieldTraverser implements Hit.RawUtf8Consumer {
- private final Map<String, Object> traversed;
+ private Map<String, Object> traversed;
public Utf8FieldTraverser(Map<String, Object> traversed) {
this.traversed = traversed;
diff --git a/container-search/src/test/java/com/yahoo/prelude/fastsearch/partial-summary1.cfg b/container-search/src/test/java/com/yahoo/prelude/fastsearch/partial-summary1.cfg
new file mode 100644
index 00000000000..5aa5c84d936
--- /dev/null
+++ b/container-search/src/test/java/com/yahoo/prelude/fastsearch/partial-summary1.cfg
@@ -0,0 +1,10 @@
+documentdb[1]
+documentdb[0].name test
+documentdb[0].summaryclass[1]
+documentdb[0].summaryclass[0].name default
+documentdb[0].summaryclass[0].id 1
+documentdb[0].summaryclass[0].fields[2]
+documentdb[0].summaryclass[0].fields[0].name integer_field
+documentdb[0].summaryclass[0].fields[0].type integer
+documentdb[0].summaryclass[0].fields[1].name short_field
+documentdb[0].summaryclass[0].fields[1].type short
diff --git a/container-search/src/test/java/com/yahoo/prelude/fastsearch/partial-summary2.cfg b/container-search/src/test/java/com/yahoo/prelude/fastsearch/partial-summary2.cfg
new file mode 100644
index 00000000000..bc870a63d66
--- /dev/null
+++ b/container-search/src/test/java/com/yahoo/prelude/fastsearch/partial-summary2.cfg
@@ -0,0 +1,12 @@
+documentdb[1]
+documentdb[0].name test
+documentdb[0].summaryclass[1]
+documentdb[0].summaryclass[0].name default
+documentdb[0].summaryclass[0].id 2
+documentdb[0].summaryclass[0].fields[3]
+documentdb[0].summaryclass[0].fields[0].name integer_field
+documentdb[0].summaryclass[0].fields[0].type integer
+documentdb[0].summaryclass[0].fields[1].name float_field
+documentdb[0].summaryclass[0].fields[1].type float
+documentdb[0].summaryclass[0].fields[2].name double_field
+documentdb[0].summaryclass[0].fields[2].type double
diff --git a/container-search/src/test/java/com/yahoo/prelude/fastsearch/partial-summary3.cfg b/container-search/src/test/java/com/yahoo/prelude/fastsearch/partial-summary3.cfg
new file mode 100644
index 00000000000..5d7319fd393
--- /dev/null
+++ b/container-search/src/test/java/com/yahoo/prelude/fastsearch/partial-summary3.cfg
@@ -0,0 +1,10 @@
+documentdb[1]
+documentdb[0].name test
+documentdb[0].summaryclass[1]
+documentdb[0].summaryclass[0].name partial3
+documentdb[0].summaryclass[0].id 3
+documentdb[0].summaryclass[0].fields[3]
+documentdb[0].summaryclass[0].fields[0].name integer_field
+documentdb[0].summaryclass[0].fields[0].type integer
+documentdb[0].summaryclass[0].fields[1].name string_field
+documentdb[0].summaryclass[0].fields[1].type string
diff --git a/container-search/src/test/java/com/yahoo/prelude/fastsearch/summary.cfg b/container-search/src/test/java/com/yahoo/prelude/fastsearch/summary.cfg
new file mode 100644
index 00000000000..e074eadcbc2
--- /dev/null
+++ b/container-search/src/test/java/com/yahoo/prelude/fastsearch/summary.cfg
@@ -0,0 +1,36 @@
+documentdb[1]
+documentdb[0].name test
+documentdb[0].summaryclass[1]
+documentdb[0].summaryclass[0].name default
+documentdb[0].summaryclass[0].id 0
+documentdb[0].summaryclass[0].fields[15]
+documentdb[0].summaryclass[0].fields[0].name integer_field
+documentdb[0].summaryclass[0].fields[0].type integer
+documentdb[0].summaryclass[0].fields[1].name short_field
+documentdb[0].summaryclass[0].fields[1].type short
+documentdb[0].summaryclass[0].fields[2].name byte_field
+documentdb[0].summaryclass[0].fields[2].type byte
+documentdb[0].summaryclass[0].fields[3].name float_field
+documentdb[0].summaryclass[0].fields[3].type float
+documentdb[0].summaryclass[0].fields[4].name double_field
+documentdb[0].summaryclass[0].fields[4].type double
+documentdb[0].summaryclass[0].fields[5].name int64_field
+documentdb[0].summaryclass[0].fields[5].type int64
+documentdb[0].summaryclass[0].fields[6].name string_field
+documentdb[0].summaryclass[0].fields[6].type string
+documentdb[0].summaryclass[0].fields[7].name data_field
+documentdb[0].summaryclass[0].fields[7].type data
+documentdb[0].summaryclass[0].fields[8].name longstring_field
+documentdb[0].summaryclass[0].fields[8].type longstring
+documentdb[0].summaryclass[0].fields[9].name longdata_field
+documentdb[0].summaryclass[0].fields[9].type longdata
+documentdb[0].summaryclass[0].fields[10].name xmlstring_field
+documentdb[0].summaryclass[0].fields[10].type xmlstring
+documentdb[0].summaryclass[0].fields[11].name jsonstring_field
+documentdb[0].summaryclass[0].fields[11].type jsonstring
+documentdb[0].summaryclass[0].fields[12].name tensor_field1
+documentdb[0].summaryclass[0].fields[12].type tensor
+documentdb[0].summaryclass[0].fields[13].name tensor_field2
+documentdb[0].summaryclass[0].fields[13].type tensor
+documentdb[0].summaryclass[0].fields[14].name summaryfeatures
+documentdb[0].summaryclass[0].fields[14].type featuredata
diff --git a/container-search/src/test/java/com/yahoo/prelude/fastsearch/test/DocsumDefinitionTestCase.java b/container-search/src/test/java/com/yahoo/prelude/fastsearch/test/DocsumDefinitionTestCase.java
index da9d849db90..6921880d725 100644
--- a/container-search/src/test/java/com/yahoo/prelude/fastsearch/test/DocsumDefinitionTestCase.java
+++ b/container-search/src/test/java/com/yahoo/prelude/fastsearch/test/DocsumDefinitionTestCase.java
@@ -1,6 +1,8 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.prelude.fastsearch.test;
+import com.yahoo.config.subscription.ConfigGetter;
+import com.yahoo.prelude.fastsearch.DocumentdbInfoConfig;
import com.yahoo.prelude.fastsearch.ByteField;
import com.yahoo.prelude.fastsearch.DataField;
import com.yahoo.prelude.fastsearch.DocsumDefinition;
@@ -10,8 +12,6 @@ import com.yahoo.prelude.fastsearch.IntegerField;
import com.yahoo.prelude.fastsearch.StringField;
import com.yahoo.document.DocumentId;
import com.yahoo.document.GlobalId;
-import com.yahoo.search.schema.DocumentSummary;
-import com.yahoo.search.schema.Schema;
import com.yahoo.slime.BinaryFormat;
import com.yahoo.slime.Cursor;
import com.yahoo.slime.Slime;
@@ -21,8 +21,9 @@ import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotEquals;
+import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
/**
@@ -33,8 +34,37 @@ import static org.junit.Assert.assertTrue;
public class DocsumDefinitionTestCase {
@Test
+ public void testReading() {
+ String summary_cf = "file:src/test/java/com/yahoo/prelude/fastsearch/test/documentdb-info.cfg";
+ DocsumDefinitionSet set = createDocsumDefinitionSet(summary_cf);
+
+ String[] defs = new String[] { "[default,default]", "[version1,version1]",
+ "[withranklog,withranklog]", "[version2,version2]", "[version3,version3]",
+ "[version4,version4]", "[version5,version5]" };
+ String setAsString = set.toString();
+ for (String d : defs) {
+ assertFalse(setAsString.indexOf(d) == -1);
+ }
+ assertEquals(7, set.size());
+
+ DocsumDefinition docsum0 = set.getDocsum("default");
+
+ assertNotNull(docsum0);
+ assertEquals("default", docsum0.getName());
+ assertEquals(19, docsum0.getFieldCount());
+ assertNull(docsum0.getField(19));
+ assertEquals("DSHOST", docsum0.getField(7).getName());
+
+ assertTrue(docsum0.getField(1) instanceof StringField);
+ assertTrue(docsum0.getField(6) instanceof ByteField);
+ assertTrue(docsum0.getField(7) instanceof IntegerField);
+ assertTrue(docsum0.getField(18) instanceof DataField);
+ }
+
+ @Test
public void testDecoding() {
- DocsumDefinitionSet set = createDocsumDefinitionSet();
+ String summary_cf = "file:src/test/java/com/yahoo/prelude/fastsearch/test/documentdb-info.cfg";
+ DocsumDefinitionSet set = createDocsumDefinitionSet(summary_cf);
FastHit hit = new FastHit();
set.lazyDecode(null, makeDocsum(), hit);
@@ -57,6 +87,10 @@ public class DocsumDefinitionTestCase {
return sb.toString();
}
+ public static GlobalId createGlobalId(int docId) {
+ return new GlobalId((new DocumentId("id:ns:type::" + docId)).getGlobalId());
+ }
+
public static byte[] makeDocsum() {
Slime slime = new Slime();
Cursor docsum = slime.setObject();
@@ -76,18 +110,9 @@ public class DocsumDefinitionTestCase {
return buf.array();
}
- public static DocsumDefinitionSet createDocsumDefinitionSet() {
- var schema = new Schema.Builder("test");
- var summary = new DocumentSummary.Builder("default");
- summary.add(new DocumentSummary.Field("TOPIC", "string"));
- summary.add(new DocumentSummary.Field("TITLE", "string"));
- summary.add(new DocumentSummary.Field("DYNTEASER", "string"));
- summary.add(new DocumentSummary.Field("EXTINFOSOURCE", "integer"));
- summary.add(new DocumentSummary.Field("LANG1", "integer"));
- summary.add(new DocumentSummary.Field("WORDS", "integer"));
- summary.add(new DocumentSummary.Field("BYTES", "byte"));
- schema.add(summary.build());
- return new DocsumDefinitionSet(schema.build());
+ public static DocsumDefinitionSet createDocsumDefinitionSet(String configID) {
+ DocumentdbInfoConfig config = new ConfigGetter<>(DocumentdbInfoConfig.class).getConfig(configID);
+ return new DocsumDefinitionSet(config.documentdb(0));
}
}
diff --git a/container-search/src/test/java/com/yahoo/prelude/fastsearch/test/FastSearcherTestCase.java b/container-search/src/test/java/com/yahoo/prelude/fastsearch/test/FastSearcherTestCase.java
index c9193d08381..da93e0e845b 100644
--- a/container-search/src/test/java/com/yahoo/prelude/fastsearch/test/FastSearcherTestCase.java
+++ b/container-search/src/test/java/com/yahoo/prelude/fastsearch/test/FastSearcherTestCase.java
@@ -24,17 +24,12 @@ import com.yahoo.search.grouping.request.EachOperation;
import com.yahoo.search.grouping.request.GroupingOperation;
import com.yahoo.search.rendering.RendererRegistry;
import com.yahoo.search.result.ErrorMessage;
-import com.yahoo.search.schema.DocumentSummary;
-import com.yahoo.search.schema.RankProfile;
-import com.yahoo.search.schema.Schema;
-import com.yahoo.search.schema.SchemaInfo;
import com.yahoo.search.searchchain.Execution;
import org.junit.Test;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
-import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -61,8 +56,7 @@ public class FastSearcherTestCase {
MockDispatcher.create(Collections.emptyList()),
new SummaryParameters(null),
new ClusterParams("testhittype"),
- documentdbInfoConfig,
- SchemaInfo.empty());
+ documentdbInfoConfig);
String query = "?junkparam=ignored";
Result result = doSearch(fastSearcher,new Query(query), 0, 10);
@@ -96,8 +90,7 @@ public class FastSearcherTestCase {
MockDispatcher.create(Collections.singletonList(new Node(0, "host0", 0))),
new SummaryParameters(null),
new ClusterParams("testhittype"),
- documentdbInfoConfig,
- SchemaInfo.empty());
+ documentdbInfoConfig);
Query q = new Query("?query=foo");
GroupingRequest request1 = GroupingRequest.newInstance(q);
request1.setRootOperation(new AllOperation());
@@ -115,18 +108,13 @@ public class FastSearcherTestCase {
@Test
public void testSummaryNeedsQuery() {
- var documentDb = new DocumentdbInfoConfig(new DocumentdbInfoConfig.Builder().documentdb(new DocumentdbInfoConfig.Documentdb.Builder().name("test")));
- var schema = new Schema.Builder("test")
- .add(new DocumentSummary.Builder("default").build())
- .add(new RankProfile.Builder("default").setHasRankFeatures(false)
- .setHasSummaryFeatures(false)
- .build());
+ ConfigGetter<DocumentdbInfoConfig> getter = new ConfigGetter<>(DocumentdbInfoConfig.class);
+ DocumentdbInfoConfig config = getter.getConfig("file:src/test/java/com/yahoo/prelude/fastsearch/test/documentdb-info.cfg");
FastSearcher backend = new FastSearcher("container.0",
MockDispatcher.create(Collections.singletonList(new Node(0, "host0", 0))),
new SummaryParameters(null),
new ClusterParams("testhittype"),
- documentDb,
- new SchemaInfo(List.of(schema.build()), Map.of()));
+ config);
Query q = new Query("?query=foo");
Result result = doSearch(backend, q, 0, 10);
assertFalse(backend.summaryNeedsQuery(q));
@@ -145,8 +133,7 @@ public class FastSearcherTestCase {
dispatcher,
new SummaryParameters(null),
new ClusterParams("testhittype"),
- documentdbInfoConfig,
- SchemaInfo.empty());
+ documentdbInfoConfig);
Query q = new Query("?query=foo");
GroupingRequest request1 = GroupingRequest.newInstance(q);
request1.setRootOperation(new AllOperation());
diff --git a/container-search/src/test/java/com/yahoo/prelude/fastsearch/test/documentdb-info.cfg b/container-search/src/test/java/com/yahoo/prelude/fastsearch/test/documentdb-info.cfg
new file mode 100644
index 00000000000..cc65ab2565e
--- /dev/null
+++ b/container-search/src/test/java/com/yahoo/prelude/fastsearch/test/documentdb-info.cfg
@@ -0,0 +1,353 @@
+documentdb[1]
+documentdb[0].name test
+documentdb[0].summaryclass[7]
+documentdb[0].summaryclass[0].name default
+documentdb[0].summaryclass[0].id 0
+documentdb[0].summaryclass[0].fields[19]
+documentdb[0].summaryclass[0].fields[0].name URL
+documentdb[0].summaryclass[0].fields[0].type string
+documentdb[0].summaryclass[0].fields[1].name TITLE
+documentdb[0].summaryclass[0].fields[1].type string
+documentdb[0].summaryclass[0].fields[2].name TEASER
+documentdb[0].summaryclass[0].fields[2].type string
+documentdb[0].summaryclass[0].fields[3].name TOPIC
+documentdb[0].summaryclass[0].fields[3].type string
+documentdb[0].summaryclass[0].fields[4].name FASTTOPIC
+documentdb[0].summaryclass[0].fields[4].type string
+documentdb[0].summaryclass[0].fields[5].name EXTINFO
+documentdb[0].summaryclass[0].fields[5].type string
+documentdb[0].summaryclass[0].fields[6].name EXTINFOSOURCE
+documentdb[0].summaryclass[0].fields[6].type byte
+documentdb[0].summaryclass[0].fields[7].name DSHOST
+documentdb[0].summaryclass[0].fields[7].type integer
+documentdb[0].summaryclass[0].fields[8].name DSKEY
+documentdb[0].summaryclass[0].fields[8].type integer
+documentdb[0].summaryclass[0].fields[9].name BYTES
+documentdb[0].summaryclass[0].fields[9].type integer
+documentdb[0].summaryclass[0].fields[10].name WORDS
+documentdb[0].summaryclass[0].fields[10].type integer
+documentdb[0].summaryclass[0].fields[11].name MODDATE
+documentdb[0].summaryclass[0].fields[11].type integer
+documentdb[0].summaryclass[0].fields[12].name CRAWLDATE
+documentdb[0].summaryclass[0].fields[12].type integer
+documentdb[0].summaryclass[0].fields[13].name LANG1
+documentdb[0].summaryclass[0].fields[13].type byte
+documentdb[0].summaryclass[0].fields[14].name LANG2
+documentdb[0].summaryclass[0].fields[14].type byte
+documentdb[0].summaryclass[0].fields[15].name LANG3
+documentdb[0].summaryclass[0].fields[15].type byte
+documentdb[0].summaryclass[0].fields[16].name LANG4
+documentdb[0].summaryclass[0].fields[16].type byte
+documentdb[0].summaryclass[0].fields[17].name IPADDRESS
+documentdb[0].summaryclass[0].fields[17].type integer
+documentdb[0].summaryclass[0].fields[18].name DOCVECTOR
+documentdb[0].summaryclass[0].fields[18].type data
+documentdb[0].summaryclass[1].name version1
+documentdb[0].summaryclass[1].id 1
+documentdb[0].summaryclass[1].fields[20]
+documentdb[0].summaryclass[1].fields[0].name URL
+documentdb[0].summaryclass[1].fields[0].type string
+documentdb[0].summaryclass[1].fields[1].name TITLE
+documentdb[0].summaryclass[1].fields[1].type string
+documentdb[0].summaryclass[1].fields[2].name TEASER
+documentdb[0].summaryclass[1].fields[2].type string
+documentdb[0].summaryclass[1].fields[3].name TOPIC
+documentdb[0].summaryclass[1].fields[3].type string
+documentdb[0].summaryclass[1].fields[4].name FASTTOPIC
+documentdb[0].summaryclass[1].fields[4].type string
+documentdb[0].summaryclass[1].fields[5].name EXTINFO
+documentdb[0].summaryclass[1].fields[5].type string
+documentdb[0].summaryclass[1].fields[6].name EXTINFOSOURCE
+documentdb[0].summaryclass[1].fields[6].type byte
+documentdb[0].summaryclass[1].fields[7].name DSHOST
+documentdb[0].summaryclass[1].fields[7].type integer
+documentdb[0].summaryclass[1].fields[8].name DSKEY
+documentdb[0].summaryclass[1].fields[8].type integer
+documentdb[0].summaryclass[1].fields[9].name BYTES
+documentdb[0].summaryclass[1].fields[9].type integer
+documentdb[0].summaryclass[1].fields[10].name WORDS
+documentdb[0].summaryclass[1].fields[10].type integer
+documentdb[0].summaryclass[1].fields[11].name MODDATE
+documentdb[0].summaryclass[1].fields[11].type integer
+documentdb[0].summaryclass[1].fields[12].name CRAWLDATE
+documentdb[0].summaryclass[1].fields[12].type integer
+documentdb[0].summaryclass[1].fields[13].name LANG1
+documentdb[0].summaryclass[1].fields[13].type byte
+documentdb[0].summaryclass[1].fields[14].name LANG2
+documentdb[0].summaryclass[1].fields[14].type byte
+documentdb[0].summaryclass[1].fields[15].name LANG3
+documentdb[0].summaryclass[1].fields[15].type byte
+documentdb[0].summaryclass[1].fields[16].name LANG4
+documentdb[0].summaryclass[1].fields[16].type byte
+documentdb[0].summaryclass[1].fields[17].name IPADDRESS
+documentdb[0].summaryclass[1].fields[17].type integer
+documentdb[0].summaryclass[1].fields[18].name DOCVECTOR
+documentdb[0].summaryclass[1].fields[18].type data
+documentdb[0].summaryclass[1].fields[19].name PARTNERSITEIDS
+documentdb[0].summaryclass[1].fields[19].type string
+documentdb[0].summaryclass[2].name version2
+documentdb[0].summaryclass[2].id 2
+documentdb[0].summaryclass[2].fields[21]
+documentdb[0].summaryclass[2].fields[0].name URL
+documentdb[0].summaryclass[2].fields[0].type string
+documentdb[0].summaryclass[2].fields[1].name TITLE
+documentdb[0].summaryclass[2].fields[1].type string
+documentdb[0].summaryclass[2].fields[2].name TEASER
+documentdb[0].summaryclass[2].fields[2].type string
+documentdb[0].summaryclass[2].fields[3].name TOPIC
+documentdb[0].summaryclass[2].fields[3].type string
+documentdb[0].summaryclass[2].fields[4].name FASTTOPIC
+documentdb[0].summaryclass[2].fields[4].type string
+documentdb[0].summaryclass[2].fields[5].name EXTINFO
+documentdb[0].summaryclass[2].fields[5].type string
+documentdb[0].summaryclass[2].fields[6].name EXTINFOSOURCE
+documentdb[0].summaryclass[2].fields[6].type byte
+documentdb[0].summaryclass[2].fields[7].name DSHOST
+documentdb[0].summaryclass[2].fields[7].type integer
+documentdb[0].summaryclass[2].fields[8].name DSKEY
+documentdb[0].summaryclass[2].fields[8].type integer
+documentdb[0].summaryclass[2].fields[9].name BYTES
+documentdb[0].summaryclass[2].fields[9].type integer
+documentdb[0].summaryclass[2].fields[10].name WORDS
+documentdb[0].summaryclass[2].fields[10].type integer
+documentdb[0].summaryclass[2].fields[11].name MODDATE
+documentdb[0].summaryclass[2].fields[11].type integer
+documentdb[0].summaryclass[2].fields[12].name CRAWLDATE
+documentdb[0].summaryclass[2].fields[12].type integer
+documentdb[0].summaryclass[2].fields[13].name LANG1
+documentdb[0].summaryclass[2].fields[13].type byte
+documentdb[0].summaryclass[2].fields[14].name LANG2
+documentdb[0].summaryclass[2].fields[14].type byte
+documentdb[0].summaryclass[2].fields[15].name LANG3
+documentdb[0].summaryclass[2].fields[15].type byte
+documentdb[0].summaryclass[2].fields[16].name LANG4
+documentdb[0].summaryclass[2].fields[16].type byte
+documentdb[0].summaryclass[2].fields[17].name IPADDRESS
+documentdb[0].summaryclass[2].fields[17].type integer
+documentdb[0].summaryclass[2].fields[18].name DOCVECTOR
+documentdb[0].summaryclass[2].fields[18].type data
+documentdb[0].summaryclass[2].fields[19].name PARTNERSITEIDS
+documentdb[0].summaryclass[2].fields[19].type string
+documentdb[0].summaryclass[2].fields[20].name DYNTEASER
+documentdb[0].summaryclass[2].fields[20].type string
+documentdb[0].summaryclass[3].name version3
+documentdb[0].summaryclass[3].id 3
+documentdb[0].summaryclass[3].fields[23]
+documentdb[0].summaryclass[3].fields[0].name URL
+documentdb[0].summaryclass[3].fields[0].type string
+documentdb[0].summaryclass[3].fields[1].name TITLE
+documentdb[0].summaryclass[3].fields[1].type string
+documentdb[0].summaryclass[3].fields[2].name TEASER
+documentdb[0].summaryclass[3].fields[2].type string
+documentdb[0].summaryclass[3].fields[3].name TOPIC
+documentdb[0].summaryclass[3].fields[3].type string
+documentdb[0].summaryclass[3].fields[4].name FASTTOPIC
+documentdb[0].summaryclass[3].fields[4].type string
+documentdb[0].summaryclass[3].fields[5].name EXTINFO
+documentdb[0].summaryclass[3].fields[5].type string
+documentdb[0].summaryclass[3].fields[6].name EXTINFOSOURCE
+documentdb[0].summaryclass[3].fields[6].type byte
+documentdb[0].summaryclass[3].fields[7].name DSHOST
+documentdb[0].summaryclass[3].fields[7].type integer
+documentdb[0].summaryclass[3].fields[8].name DSKEY
+documentdb[0].summaryclass[3].fields[8].type integer
+documentdb[0].summaryclass[3].fields[9].name BYTES
+documentdb[0].summaryclass[3].fields[9].type integer
+documentdb[0].summaryclass[3].fields[10].name WORDS
+documentdb[0].summaryclass[3].fields[10].type integer
+documentdb[0].summaryclass[3].fields[11].name MODDATE
+documentdb[0].summaryclass[3].fields[11].type integer
+documentdb[0].summaryclass[3].fields[12].name CRAWLDATE
+documentdb[0].summaryclass[3].fields[12].type integer
+documentdb[0].summaryclass[3].fields[13].name LANG1
+documentdb[0].summaryclass[3].fields[13].type byte
+documentdb[0].summaryclass[3].fields[14].name LANG2
+documentdb[0].summaryclass[3].fields[14].type byte
+documentdb[0].summaryclass[3].fields[15].name LANG3
+documentdb[0].summaryclass[3].fields[15].type byte
+documentdb[0].summaryclass[3].fields[16].name LANG4
+documentdb[0].summaryclass[3].fields[16].type byte
+documentdb[0].summaryclass[3].fields[17].name IPADDRESS
+documentdb[0].summaryclass[3].fields[17].type integer
+documentdb[0].summaryclass[3].fields[18].name DOCVECTOR
+documentdb[0].summaryclass[3].fields[18].type data
+documentdb[0].summaryclass[3].fields[19].name PARTNERSITEIDS
+documentdb[0].summaryclass[3].fields[19].type string
+documentdb[0].summaryclass[3].fields[20].name MIMETYPE
+documentdb[0].summaryclass[3].fields[20].type string
+documentdb[0].summaryclass[3].fields[21].name STATICRANKLOG
+documentdb[0].summaryclass[3].fields[21].type string
+documentdb[0].summaryclass[3].fields[22].name DYNTEASER
+documentdb[0].summaryclass[3].fields[22].type longstring
+documentdb[0].summaryclass[4].name version4
+documentdb[0].summaryclass[4].id 4
+documentdb[0].summaryclass[4].fields[24]
+documentdb[0].summaryclass[4].fields[0].name URL
+documentdb[0].summaryclass[4].fields[0].type string
+documentdb[0].summaryclass[4].fields[1].name CCURL
+documentdb[0].summaryclass[4].fields[1].type string
+documentdb[0].summaryclass[4].fields[2].name TITLE
+documentdb[0].summaryclass[4].fields[2].type string
+documentdb[0].summaryclass[4].fields[3].name TEASER
+documentdb[0].summaryclass[4].fields[3].type string
+documentdb[0].summaryclass[4].fields[4].name TOPIC
+documentdb[0].summaryclass[4].fields[4].type string
+documentdb[0].summaryclass[4].fields[5].name FASTTOPIC
+documentdb[0].summaryclass[4].fields[5].type string
+documentdb[0].summaryclass[4].fields[6].name EXTINFO
+documentdb[0].summaryclass[4].fields[6].type string
+documentdb[0].summaryclass[4].fields[7].name EXTINFOSOURCE
+documentdb[0].summaryclass[4].fields[7].type byte
+documentdb[0].summaryclass[4].fields[8].name DSHOST
+documentdb[0].summaryclass[4].fields[8].type integer
+documentdb[0].summaryclass[4].fields[9].name DSKEY
+documentdb[0].summaryclass[4].fields[9].type integer
+documentdb[0].summaryclass[4].fields[10].name BYTES
+documentdb[0].summaryclass[4].fields[10].type integer
+documentdb[0].summaryclass[4].fields[11].name WORDS
+documentdb[0].summaryclass[4].fields[11].type integer
+documentdb[0].summaryclass[4].fields[12].name MODDATE
+documentdb[0].summaryclass[4].fields[12].type integer
+documentdb[0].summaryclass[4].fields[13].name CRAWLDATE
+documentdb[0].summaryclass[4].fields[13].type integer
+documentdb[0].summaryclass[4].fields[14].name LANG1
+documentdb[0].summaryclass[4].fields[14].type byte
+documentdb[0].summaryclass[4].fields[15].name LANG2
+documentdb[0].summaryclass[4].fields[15].type byte
+documentdb[0].summaryclass[4].fields[16].name LANG3
+documentdb[0].summaryclass[4].fields[16].type byte
+documentdb[0].summaryclass[4].fields[17].name LANG4
+documentdb[0].summaryclass[4].fields[17].type byte
+documentdb[0].summaryclass[4].fields[18].name IPADDRESS
+documentdb[0].summaryclass[4].fields[18].type integer
+documentdb[0].summaryclass[4].fields[19].name DOCVECTOR
+documentdb[0].summaryclass[4].fields[19].type data
+documentdb[0].summaryclass[4].fields[20].name PARTNERSITEIDS
+documentdb[0].summaryclass[4].fields[20].type string
+documentdb[0].summaryclass[4].fields[21].name MIMETYPE
+documentdb[0].summaryclass[4].fields[21].type string
+documentdb[0].summaryclass[4].fields[22].name STATICRANKLOG
+documentdb[0].summaryclass[4].fields[22].type string
+documentdb[0].summaryclass[4].fields[23].name DYNTEASER
+documentdb[0].summaryclass[4].fields[23].type longstring
+documentdb[0].summaryclass[5].name version5
+documentdb[0].summaryclass[5].id 5
+documentdb[0].summaryclass[5].fields[25]
+documentdb[0].summaryclass[5].fields[0].name URL
+documentdb[0].summaryclass[5].fields[0].type string
+documentdb[0].summaryclass[5].fields[1].name URLLIST
+documentdb[0].summaryclass[5].fields[1].type string
+documentdb[0].summaryclass[5].fields[2].name CCURL
+documentdb[0].summaryclass[5].fields[2].type string
+documentdb[0].summaryclass[5].fields[3].name TITLE
+documentdb[0].summaryclass[5].fields[3].type string
+documentdb[0].summaryclass[5].fields[4].name TEASER
+documentdb[0].summaryclass[5].fields[4].type string
+documentdb[0].summaryclass[5].fields[5].name TOPIC
+documentdb[0].summaryclass[5].fields[5].type string
+documentdb[0].summaryclass[5].fields[6].name FASTTOPIC
+documentdb[0].summaryclass[5].fields[6].type string
+documentdb[0].summaryclass[5].fields[7].name EXTINFO
+documentdb[0].summaryclass[5].fields[7].type string
+documentdb[0].summaryclass[5].fields[8].name EXTINFOSOURCE
+documentdb[0].summaryclass[5].fields[8].type byte
+documentdb[0].summaryclass[5].fields[9].name DSHOST
+documentdb[0].summaryclass[5].fields[9].type integer
+documentdb[0].summaryclass[5].fields[10].name DSKEY
+documentdb[0].summaryclass[5].fields[10].type integer
+documentdb[0].summaryclass[5].fields[11].name BYTES
+documentdb[0].summaryclass[5].fields[11].type integer
+documentdb[0].summaryclass[5].fields[12].name WORDS
+documentdb[0].summaryclass[5].fields[12].type integer
+documentdb[0].summaryclass[5].fields[13].name MODDATE
+documentdb[0].summaryclass[5].fields[13].type integer
+documentdb[0].summaryclass[5].fields[14].name CRAWLDATE
+documentdb[0].summaryclass[5].fields[14].type integer
+documentdb[0].summaryclass[5].fields[15].name LANG1
+documentdb[0].summaryclass[5].fields[15].type byte
+documentdb[0].summaryclass[5].fields[16].name LANG2
+documentdb[0].summaryclass[5].fields[16].type byte
+documentdb[0].summaryclass[5].fields[17].name LANG3
+documentdb[0].summaryclass[5].fields[17].type byte
+documentdb[0].summaryclass[5].fields[18].name LANG4
+documentdb[0].summaryclass[5].fields[18].type byte
+documentdb[0].summaryclass[5].fields[19].name IPADDRESS
+documentdb[0].summaryclass[5].fields[19].type integer
+documentdb[0].summaryclass[5].fields[20].name DOCVECTOR
+documentdb[0].summaryclass[5].fields[20].type data
+documentdb[0].summaryclass[5].fields[21].name PARTNERSITEIDS
+documentdb[0].summaryclass[5].fields[21].type string
+documentdb[0].summaryclass[5].fields[22].name MIMETYPE
+documentdb[0].summaryclass[5].fields[22].type string
+documentdb[0].summaryclass[5].fields[23].name STATICRANKLOG
+documentdb[0].summaryclass[5].fields[23].type string
+documentdb[0].summaryclass[5].fields[24].name DYNTEASER
+documentdb[0].summaryclass[5].fields[24].type longstring
+documentdb[0].summaryclass[6].name withranklog
+documentdb[0].summaryclass[6].id 237
+documentdb[0].summaryclass[6].fields[31]
+documentdb[0].summaryclass[6].fields[0].name BYTES
+documentdb[0].summaryclass[6].fields[0].type integer
+documentdb[0].summaryclass[6].fields[1].name CCURL
+documentdb[0].summaryclass[6].fields[1].type string
+documentdb[0].summaryclass[6].fields[2].name CRAWLDATE
+documentdb[0].summaryclass[6].fields[2].type integer
+documentdb[0].summaryclass[6].fields[3].name DOCVECTOR
+documentdb[0].summaryclass[6].fields[3].type data
+documentdb[0].summaryclass[6].fields[4].name DSHOST
+documentdb[0].summaryclass[6].fields[4].type integer
+documentdb[0].summaryclass[6].fields[5].name DSKEY
+documentdb[0].summaryclass[6].fields[5].type integer
+documentdb[0].summaryclass[6].fields[6].name DYNTEASER
+documentdb[0].summaryclass[6].fields[6].type longstring
+documentdb[0].summaryclass[6].fields[7].name DYNTEASERINPUT
+documentdb[0].summaryclass[6].fields[7].type longstring
+documentdb[0].summaryclass[6].fields[8].name EXTINFO
+documentdb[0].summaryclass[6].fields[8].type string
+documentdb[0].summaryclass[6].fields[9].name EXTINFOSOURCE
+documentdb[0].summaryclass[6].fields[9].type byte
+documentdb[0].summaryclass[6].fields[10].name FASTTOPIC
+documentdb[0].summaryclass[6].fields[10].type string
+documentdb[0].summaryclass[6].fields[11].name IPADDRESS
+documentdb[0].summaryclass[6].fields[11].type integer
+documentdb[0].summaryclass[6].fields[12].name JUNIPER
+documentdb[0].summaryclass[6].fields[12].type longstring
+documentdb[0].summaryclass[6].fields[13].name JUNIPERMETRIC
+documentdb[0].summaryclass[6].fields[13].type integer
+documentdb[0].summaryclass[6].fields[14].name LABEL
+documentdb[0].summaryclass[6].fields[14].type string
+documentdb[0].summaryclass[6].fields[15].name LANG1
+documentdb[0].summaryclass[6].fields[15].type byte
+documentdb[0].summaryclass[6].fields[16].name LANG2
+documentdb[0].summaryclass[6].fields[16].type byte
+documentdb[0].summaryclass[6].fields[17].name LANG3
+documentdb[0].summaryclass[6].fields[17].type byte
+documentdb[0].summaryclass[6].fields[18].name LANG4
+documentdb[0].summaryclass[6].fields[18].type byte
+documentdb[0].summaryclass[6].fields[19].name MIMETYPE
+documentdb[0].summaryclass[6].fields[19].type string
+documentdb[0].summaryclass[6].fields[20].name MODDATE
+documentdb[0].summaryclass[6].fields[20].type integer
+documentdb[0].summaryclass[6].fields[21].name PARTNERSITEIDS
+documentdb[0].summaryclass[6].fields[21].type string
+documentdb[0].summaryclass[6].fields[22].name RANKLOG
+documentdb[0].summaryclass[6].fields[22].type string
+documentdb[0].summaryclass[6].fields[23].name STATICRANK
+documentdb[0].summaryclass[6].fields[23].type integer
+documentdb[0].summaryclass[6].fields[24].name STATICRANKLOG
+documentdb[0].summaryclass[6].fields[24].type string
+documentdb[0].summaryclass[6].fields[25].name TEASER
+documentdb[0].summaryclass[6].fields[25].type string
+documentdb[0].summaryclass[6].fields[26].name TITLE
+documentdb[0].summaryclass[6].fields[26].type string
+documentdb[0].summaryclass[6].fields[27].name TOPIC
+documentdb[0].summaryclass[6].fields[27].type string
+documentdb[0].summaryclass[6].fields[28].name URL
+documentdb[0].summaryclass[6].fields[28].type string
+documentdb[0].summaryclass[6].fields[29].name URLLIST
+documentdb[0].summaryclass[6].fields[29].type string
+documentdb[0].summaryclass[6].fields[30].name WORDS
+documentdb[0].summaryclass[6].fields[30].type integer
+documentdb[0].rankprofile[0].name "default"
+documentdb[0].rankprofile[0].hasSummaryFeatures false
+documentdb[0].rankprofile[0].hasRankFeatures false