diff options
author | Jon Bratseth <bratseth@yahoo-inc.com> | 2016-06-15 23:09:44 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@yahoo-inc.com> | 2016-06-15 23:09:44 +0200 |
commit | 72231250ed81e10d66bfe70701e64fa5fe50f712 (patch) | |
tree | 2728bba1131a6f6e5bdf95afec7d7ff9358dac50 /streamingvisitors/src/tests/searchvisitor |
Publish
Diffstat (limited to 'streamingvisitors/src/tests/searchvisitor')
16 files changed, 671 insertions, 0 deletions
diff --git a/streamingvisitors/src/tests/searchvisitor/.gitignore b/streamingvisitors/src/tests/searchvisitor/.gitignore new file mode 100644 index 00000000000..543f6428e3c --- /dev/null +++ b/streamingvisitors/src/tests/searchvisitor/.gitignore @@ -0,0 +1,4 @@ +/.depend +/Makefile +/searchvisitor_test +streamingvisitors_searchvisitor_test_app diff --git a/streamingvisitors/src/tests/searchvisitor/CMakeLists.txt b/streamingvisitors/src/tests/searchvisitor/CMakeLists.txt new file mode 100644 index 00000000000..83abfde144a --- /dev/null +++ b/streamingvisitors/src/tests/searchvisitor/CMakeLists.txt @@ -0,0 +1,8 @@ +# Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +vespa_add_executable(streamingvisitors_searchvisitor_test_app + SOURCES + searchvisitor.cpp + DEPENDS + streamingvisitors_searchvisitor +) +vespa_add_test(NAME streamingvisitors_searchvisitor_test_app COMMAND streamingvisitors_searchvisitor_test_app) diff --git a/streamingvisitors/src/tests/searchvisitor/cfg/documenttypes.cfg b/streamingvisitors/src/tests/searchvisitor/cfg/documenttypes.cfg new file mode 100644 index 00000000000..7bb863dc8e2 --- /dev/null +++ b/streamingvisitors/src/tests/searchvisitor/cfg/documenttypes.cfg @@ -0,0 +1,317 @@ +enablecompression false +documenttype[0].id 1843830320 +documenttype[0].name "maptest" +documenttype[0].version 0 +documenttype[0].headerstruct -91088113 +documenttype[0].bodystruct -1659731740 +documenttype[0].inherits[0].id 8 +documenttype[0].datatype[0].id 3474528 +documenttype[0].datatype[0].type STRUCT +documenttype[0].datatype[0].array.element.id 0 +documenttype[0].datatype[0].map.key.id 0 +documenttype[0].datatype[0].map.value.id 0 +documenttype[0].datatype[0].wset.key.id 0 +documenttype[0].datatype[0].wset.createifnonexistent false +documenttype[0].datatype[0].wset.removeifzero false +documenttype[0].datatype[0].annotationref.annotation.id 0 +documenttype[0].datatype[0].sstruct.name "s1" +documenttype[0].datatype[0].sstruct.version 0 +documenttype[0].datatype[0].sstruct.compression.type NONE +documenttype[0].datatype[0].sstruct.compression.level 0 +documenttype[0].datatype[0].sstruct.compression.threshold 95 +documenttype[0].datatype[0].sstruct.compression.minsize 200 +documenttype[0].datatype[0].sstruct.field[0].name "a" +documenttype[0].datatype[0].sstruct.field[0].id 493339625 +documenttype[0].datatype[0].sstruct.field[0].id_v6 703514648 +documenttype[0].datatype[0].sstruct.field[0].datatype 2 +documenttype[0].datatype[0].sstruct.field[1].name "b" +documenttype[0].datatype[0].sstruct.field[1].id 441632370 +documenttype[0].datatype[0].sstruct.field[1].id_v6 1420600727 +documenttype[0].datatype[0].sstruct.field[1].datatype 2 +documenttype[0].datatype[1].id 339965458 +documenttype[0].datatype[1].type MAP +documenttype[0].datatype[1].array.element.id 0 +documenttype[0].datatype[1].map.key.id 2 +documenttype[0].datatype[1].map.value.id 2 +documenttype[0].datatype[1].wset.key.id 0 +documenttype[0].datatype[1].wset.createifnonexistent false +documenttype[0].datatype[1].wset.removeifzero false +documenttype[0].datatype[1].annotationref.annotation.id 0 +documenttype[0].datatype[1].sstruct.name "" +documenttype[0].datatype[1].sstruct.version 0 +documenttype[0].datatype[1].sstruct.compression.type NONE +documenttype[0].datatype[1].sstruct.compression.level 0 +documenttype[0].datatype[1].sstruct.compression.threshold 95 +documenttype[0].datatype[1].sstruct.compression.minsize 200 +documenttype[0].datatype[2].id 1888564261 +documenttype[0].datatype[2].type MAP +documenttype[0].datatype[2].array.element.id 0 +documenttype[0].datatype[2].map.key.id 2 +documenttype[0].datatype[2].map.value.id 3474528 +documenttype[0].datatype[2].wset.key.id 0 +documenttype[0].datatype[2].wset.createifnonexistent false +documenttype[0].datatype[2].wset.removeifzero false +documenttype[0].datatype[2].annotationref.annotation.id 0 +documenttype[0].datatype[2].sstruct.name "" +documenttype[0].datatype[2].sstruct.version 0 +documenttype[0].datatype[2].sstruct.compression.type NONE +documenttype[0].datatype[2].sstruct.compression.level 0 +documenttype[0].datatype[2].sstruct.compression.threshold 95 +documenttype[0].datatype[2].sstruct.compression.minsize 200 +documenttype[0].datatype[3].id -1486737430 +documenttype[0].datatype[3].type ARRAY +documenttype[0].datatype[3].array.element.id 2 +documenttype[0].datatype[3].map.key.id 0 +documenttype[0].datatype[3].map.value.id 0 +documenttype[0].datatype[3].wset.key.id 0 +documenttype[0].datatype[3].wset.createifnonexistent false +documenttype[0].datatype[3].wset.removeifzero false +documenttype[0].datatype[3].annotationref.annotation.id 0 +documenttype[0].datatype[3].sstruct.name "" +documenttype[0].datatype[3].sstruct.version 0 +documenttype[0].datatype[3].sstruct.compression.type NONE +documenttype[0].datatype[3].sstruct.compression.level 0 +documenttype[0].datatype[3].sstruct.compression.threshold 95 +documenttype[0].datatype[3].sstruct.compression.minsize 200 +documenttype[0].datatype[4].id -1220861393 +documenttype[0].datatype[4].type MAP +documenttype[0].datatype[4].array.element.id 0 +documenttype[0].datatype[4].map.key.id 2 +documenttype[0].datatype[4].map.value.id -1486737430 +documenttype[0].datatype[4].wset.key.id 0 +documenttype[0].datatype[4].wset.createifnonexistent false +documenttype[0].datatype[4].wset.removeifzero false +documenttype[0].datatype[4].annotationref.annotation.id 0 +documenttype[0].datatype[4].sstruct.name "" +documenttype[0].datatype[4].sstruct.version 0 +documenttype[0].datatype[4].sstruct.compression.type NONE +documenttype[0].datatype[4].sstruct.compression.level 0 +documenttype[0].datatype[4].sstruct.compression.threshold 95 +documenttype[0].datatype[4].sstruct.compression.minsize 200 +documenttype[0].datatype[5].id 1070047409 +documenttype[0].datatype[5].type MAP +documenttype[0].datatype[5].array.element.id 0 +documenttype[0].datatype[5].map.key.id 2 +documenttype[0].datatype[5].map.value.id 339965458 +documenttype[0].datatype[5].wset.key.id 0 +documenttype[0].datatype[5].wset.createifnonexistent false +documenttype[0].datatype[5].wset.removeifzero false +documenttype[0].datatype[5].annotationref.annotation.id 0 +documenttype[0].datatype[5].sstruct.name "" +documenttype[0].datatype[5].sstruct.version 0 +documenttype[0].datatype[5].sstruct.compression.type NONE +documenttype[0].datatype[5].sstruct.compression.level 0 +documenttype[0].datatype[5].sstruct.compression.threshold 95 +documenttype[0].datatype[5].sstruct.compression.minsize 200 +documenttype[0].datatype[6].id -91088113 +documenttype[0].datatype[6].type STRUCT +documenttype[0].datatype[6].array.element.id 0 +documenttype[0].datatype[6].map.key.id 0 +documenttype[0].datatype[6].map.value.id 0 +documenttype[0].datatype[6].wset.key.id 0 +documenttype[0].datatype[6].wset.createifnonexistent false +documenttype[0].datatype[6].wset.removeifzero false +documenttype[0].datatype[6].annotationref.annotation.id 0 +documenttype[0].datatype[6].sstruct.name "maptest.header" +documenttype[0].datatype[6].sstruct.version 0 +documenttype[0].datatype[6].sstruct.compression.type NONE +documenttype[0].datatype[6].sstruct.compression.level 0 +documenttype[0].datatype[6].sstruct.compression.threshold 95 +documenttype[0].datatype[6].sstruct.compression.minsize 200 +documenttype[0].datatype[6].sstruct.field[0].name "name" +documenttype[0].datatype[6].sstruct.field[0].id 1160796772 +documenttype[0].datatype[6].sstruct.field[0].id_v6 774203930 +documenttype[0].datatype[6].sstruct.field[0].datatype 2 +documenttype[0].datatype[6].sstruct.field[1].name "m1" +documenttype[0].datatype[6].sstruct.field[1].id 656260193 +documenttype[0].datatype[6].sstruct.field[1].id_v6 1013611640 +documenttype[0].datatype[6].sstruct.field[1].datatype 339965458 +documenttype[0].datatype[6].sstruct.field[2].name "m2" +documenttype[0].datatype[6].sstruct.field[2].id 1105173090 +documenttype[0].datatype[6].sstruct.field[2].id_v6 1026497887 +documenttype[0].datatype[6].sstruct.field[2].datatype 1888564261 +documenttype[0].datatype[6].sstruct.field[3].name "m3" +documenttype[0].datatype[6].sstruct.field[3].id 1834987989 +documenttype[0].datatype[6].sstruct.field[3].id_v6 1365320273 +documenttype[0].datatype[6].sstruct.field[3].datatype -1220861393 +documenttype[0].datatype[6].sstruct.field[4].name "m4" +documenttype[0].datatype[6].sstruct.field[4].id 1696105521 +documenttype[0].datatype[6].sstruct.field[4].id_v6 1636310067 +documenttype[0].datatype[6].sstruct.field[4].datatype 1070047409 +documenttype[0].datatype[7].id -1659731740 +documenttype[0].datatype[7].type STRUCT +documenttype[0].datatype[7].array.element.id 0 +documenttype[0].datatype[7].map.key.id 0 +documenttype[0].datatype[7].map.value.id 0 +documenttype[0].datatype[7].wset.key.id 0 +documenttype[0].datatype[7].wset.createifnonexistent false +documenttype[0].datatype[7].wset.removeifzero false +documenttype[0].datatype[7].annotationref.annotation.id 0 +documenttype[0].datatype[7].sstruct.name "maptest.body" +documenttype[0].datatype[7].sstruct.version 0 +documenttype[0].datatype[7].sstruct.compression.type NONE +documenttype[0].datatype[7].sstruct.compression.level 0 +documenttype[0].datatype[7].sstruct.compression.threshold 95 +documenttype[0].datatype[7].sstruct.compression.minsize 200 +documenttype[1].id -753106277 +documenttype[1].name "maptest_search" +documenttype[1].version 0 +documenttype[1].headerstruct 919697476 +documenttype[1].bodystruct -125720743 +documenttype[1].inherits[0].id 8 +documenttype[1].datatype[0].id 3474528 +documenttype[1].datatype[0].type STRUCT +documenttype[1].datatype[0].array.element.id 0 +documenttype[1].datatype[0].map.key.id 0 +documenttype[1].datatype[0].map.value.id 0 +documenttype[1].datatype[0].wset.key.id 0 +documenttype[1].datatype[0].wset.createifnonexistent false +documenttype[1].datatype[0].wset.removeifzero false +documenttype[1].datatype[0].annotationref.annotation.id 0 +documenttype[1].datatype[0].sstruct.name "s1" +documenttype[1].datatype[0].sstruct.version 0 +documenttype[1].datatype[0].sstruct.compression.type NONE +documenttype[1].datatype[0].sstruct.compression.level 0 +documenttype[1].datatype[0].sstruct.compression.threshold 95 +documenttype[1].datatype[0].sstruct.compression.minsize 200 +documenttype[1].datatype[0].sstruct.field[0].name "a" +documenttype[1].datatype[0].sstruct.field[0].id 493339625 +documenttype[1].datatype[0].sstruct.field[0].id_v6 703514648 +documenttype[1].datatype[0].sstruct.field[0].datatype 2 +documenttype[1].datatype[0].sstruct.field[1].name "b" +documenttype[1].datatype[0].sstruct.field[1].id 441632370 +documenttype[1].datatype[0].sstruct.field[1].id_v6 1420600727 +documenttype[1].datatype[0].sstruct.field[1].datatype 2 +documenttype[1].datatype[1].id 339965458 +documenttype[1].datatype[1].type MAP +documenttype[1].datatype[1].array.element.id 0 +documenttype[1].datatype[1].map.key.id 2 +documenttype[1].datatype[1].map.value.id 2 +documenttype[1].datatype[1].wset.key.id 0 +documenttype[1].datatype[1].wset.createifnonexistent false +documenttype[1].datatype[1].wset.removeifzero false +documenttype[1].datatype[1].annotationref.annotation.id 0 +documenttype[1].datatype[1].sstruct.name "" +documenttype[1].datatype[1].sstruct.version 0 +documenttype[1].datatype[1].sstruct.compression.type NONE +documenttype[1].datatype[1].sstruct.compression.level 0 +documenttype[1].datatype[1].sstruct.compression.threshold 95 +documenttype[1].datatype[1].sstruct.compression.minsize 200 +documenttype[1].datatype[2].id 1888564261 +documenttype[1].datatype[2].type MAP +documenttype[1].datatype[2].array.element.id 0 +documenttype[1].datatype[2].map.key.id 2 +documenttype[1].datatype[2].map.value.id 3474528 +documenttype[1].datatype[2].wset.key.id 0 +documenttype[1].datatype[2].wset.createifnonexistent false +documenttype[1].datatype[2].wset.removeifzero false +documenttype[1].datatype[2].annotationref.annotation.id 0 +documenttype[1].datatype[2].sstruct.name "" +documenttype[1].datatype[2].sstruct.version 0 +documenttype[1].datatype[2].sstruct.compression.type NONE +documenttype[1].datatype[2].sstruct.compression.level 0 +documenttype[1].datatype[2].sstruct.compression.threshold 95 +documenttype[1].datatype[2].sstruct.compression.minsize 200 +documenttype[1].datatype[3].id -1486737430 +documenttype[1].datatype[3].type ARRAY +documenttype[1].datatype[3].array.element.id 2 +documenttype[1].datatype[3].map.key.id 0 +documenttype[1].datatype[3].map.value.id 0 +documenttype[1].datatype[3].wset.key.id 0 +documenttype[1].datatype[3].wset.createifnonexistent false +documenttype[1].datatype[3].wset.removeifzero false +documenttype[1].datatype[3].annotationref.annotation.id 0 +documenttype[1].datatype[3].sstruct.name "" +documenttype[1].datatype[3].sstruct.version 0 +documenttype[1].datatype[3].sstruct.compression.type NONE +documenttype[1].datatype[3].sstruct.compression.level 0 +documenttype[1].datatype[3].sstruct.compression.threshold 95 +documenttype[1].datatype[3].sstruct.compression.minsize 200 +documenttype[1].datatype[4].id -1220861393 +documenttype[1].datatype[4].type MAP +documenttype[1].datatype[4].array.element.id 0 +documenttype[1].datatype[4].map.key.id 2 +documenttype[1].datatype[4].map.value.id -1486737430 +documenttype[1].datatype[4].wset.key.id 0 +documenttype[1].datatype[4].wset.createifnonexistent false +documenttype[1].datatype[4].wset.removeifzero false +documenttype[1].datatype[4].annotationref.annotation.id 0 +documenttype[1].datatype[4].sstruct.name "" +documenttype[1].datatype[4].sstruct.version 0 +documenttype[1].datatype[4].sstruct.compression.type NONE +documenttype[1].datatype[4].sstruct.compression.level 0 +documenttype[1].datatype[4].sstruct.compression.threshold 95 +documenttype[1].datatype[4].sstruct.compression.minsize 200 +documenttype[1].datatype[5].id 1070047409 +documenttype[1].datatype[5].type MAP +documenttype[1].datatype[5].array.element.id 0 +documenttype[1].datatype[5].map.key.id 2 +documenttype[1].datatype[5].map.value.id 339965458 +documenttype[1].datatype[5].wset.key.id 0 +documenttype[1].datatype[5].wset.createifnonexistent false +documenttype[1].datatype[5].wset.removeifzero false +documenttype[1].datatype[5].annotationref.annotation.id 0 +documenttype[1].datatype[5].sstruct.name "" +documenttype[1].datatype[5].sstruct.version 0 +documenttype[1].datatype[5].sstruct.compression.type NONE +documenttype[1].datatype[5].sstruct.compression.level 0 +documenttype[1].datatype[5].sstruct.compression.threshold 95 +documenttype[1].datatype[5].sstruct.compression.minsize 200 +documenttype[1].datatype[6].id 919697476 +documenttype[1].datatype[6].type STRUCT +documenttype[1].datatype[6].array.element.id 0 +documenttype[1].datatype[6].map.key.id 0 +documenttype[1].datatype[6].map.value.id 0 +documenttype[1].datatype[6].wset.key.id 0 +documenttype[1].datatype[6].wset.createifnonexistent false +documenttype[1].datatype[6].wset.removeifzero false +documenttype[1].datatype[6].annotationref.annotation.id 0 +documenttype[1].datatype[6].sstruct.name "maptest_search.header" +documenttype[1].datatype[6].sstruct.version 0 +documenttype[1].datatype[6].sstruct.compression.type NONE +documenttype[1].datatype[6].sstruct.compression.level 0 +documenttype[1].datatype[6].sstruct.compression.threshold 95 +documenttype[1].datatype[6].sstruct.compression.minsize 200 +documenttype[1].datatype[6].sstruct.field[0].name "name" +documenttype[1].datatype[6].sstruct.field[0].id 1160796772 +documenttype[1].datatype[6].sstruct.field[0].id_v6 774203930 +documenttype[1].datatype[6].sstruct.field[0].datatype 2 +documenttype[1].datatype[6].sstruct.field[1].name "m1" +documenttype[1].datatype[6].sstruct.field[1].id 656260193 +documenttype[1].datatype[6].sstruct.field[1].id_v6 1013611640 +documenttype[1].datatype[6].sstruct.field[1].datatype 339965458 +documenttype[1].datatype[6].sstruct.field[2].name "m2" +documenttype[1].datatype[6].sstruct.field[2].id 1105173090 +documenttype[1].datatype[6].sstruct.field[2].id_v6 1026497887 +documenttype[1].datatype[6].sstruct.field[2].datatype 1888564261 +documenttype[1].datatype[6].sstruct.field[3].name "m3" +documenttype[1].datatype[6].sstruct.field[3].id 1834987989 +documenttype[1].datatype[6].sstruct.field[3].id_v6 1365320273 +documenttype[1].datatype[6].sstruct.field[3].datatype -1220861393 +documenttype[1].datatype[6].sstruct.field[4].name "m4" +documenttype[1].datatype[6].sstruct.field[4].id 1696105521 +documenttype[1].datatype[6].sstruct.field[4].id_v6 1636310067 +documenttype[1].datatype[6].sstruct.field[4].datatype 1070047409 +documenttype[1].datatype[6].sstruct.field[5].name "rankfeatures" +documenttype[1].datatype[6].sstruct.field[5].id 1883197392 +documenttype[1].datatype[6].sstruct.field[5].id_v6 699950698 +documenttype[1].datatype[6].sstruct.field[5].datatype 2 +documenttype[1].datatype[6].sstruct.field[6].name "summaryfeatures" +documenttype[1].datatype[6].sstruct.field[6].id 1840337115 +documenttype[1].datatype[6].sstruct.field[6].id_v6 1981648971 +documenttype[1].datatype[6].sstruct.field[6].datatype 2 +documenttype[1].datatype[7].id -125720743 +documenttype[1].datatype[7].type STRUCT +documenttype[1].datatype[7].array.element.id 0 +documenttype[1].datatype[7].map.key.id 0 +documenttype[1].datatype[7].map.value.id 0 +documenttype[1].datatype[7].wset.key.id 0 +documenttype[1].datatype[7].wset.createifnonexistent false +documenttype[1].datatype[7].wset.removeifzero false +documenttype[1].datatype[7].annotationref.annotation.id 0 +documenttype[1].datatype[7].sstruct.name "maptest_search.body" +documenttype[1].datatype[7].sstruct.version 0 +documenttype[1].datatype[7].sstruct.compression.type NONE +documenttype[1].datatype[7].sstruct.compression.level 0 +documenttype[1].datatype[7].sstruct.compression.threshold 95 +documenttype[1].datatype[7].sstruct.compression.minsize 200 diff --git a/streamingvisitors/src/tests/searchvisitor/cfg/juniperrc.aaa.cfg b/streamingvisitors/src/tests/searchvisitor/cfg/juniperrc.aaa.cfg new file mode 100644 index 00000000000..09e13ed0f8b --- /dev/null +++ b/streamingvisitors/src/tests/searchvisitor/cfg/juniperrc.aaa.cfg @@ -0,0 +1,11 @@ +length 256 +max_match_candidates 1000 +max_matches 3 +min_length 128 +prefix true +stem_max_extend 3 +stem_min_length 5 +surround_max 128 +winsize 200 +winsize_fallback_multiplier 10.0 +override[0] diff --git a/streamingvisitors/src/tests/searchvisitor/cfg/juniperrc.simple.cfg b/streamingvisitors/src/tests/searchvisitor/cfg/juniperrc.simple.cfg new file mode 100644 index 00000000000..e69de29bb2d --- /dev/null +++ b/streamingvisitors/src/tests/searchvisitor/cfg/juniperrc.simple.cfg diff --git a/streamingvisitors/src/tests/searchvisitor/cfg/rank-profiles.aaa.cfg b/streamingvisitors/src/tests/searchvisitor/cfg/rank-profiles.aaa.cfg new file mode 100644 index 00000000000..cf3ee6a7179 --- /dev/null +++ b/streamingvisitors/src/tests/searchvisitor/cfg/rank-profiles.aaa.cfg @@ -0,0 +1,43 @@ +rankprofile[2] +rankprofile[0].name "default" +rankprofile[0].fef.property[15] +rankprofile[0].fef.property[00].name "vespa.summary.feature" +rankprofile[0].fef.property[00].value "fieldTermMatch(m1.key,0).firstPosition" +rankprofile[0].fef.property[01].name "vespa.summary.feature" +rankprofile[0].fef.property[01].value "fieldTermMatch(m1.key,0).occurrences" +rankprofile[0].fef.property[02].name "vespa.summary.feature" +rankprofile[0].fef.property[02].value "fieldLength(m1.key)" +rankprofile[0].fef.property[03].name "vespa.summary.feature" +rankprofile[0].fef.property[03].value "fieldTermMatch(m1.value,0).firstPosition" +rankprofile[0].fef.property[04].name "vespa.summary.feature" +rankprofile[0].fef.property[04].value "fieldTermMatch(m1.value,0).occurrences" +rankprofile[0].fef.property[05].name "vespa.summary.feature" +rankprofile[0].fef.property[05].value "fieldLength(m1.value)" +rankprofile[0].fef.property[06].name "vespa.summary.feature" +rankprofile[0].fef.property[06].value "fieldTermMatch(m2.value.a,0).firstPosition" +rankprofile[0].fef.property[07].name "vespa.summary.feature" +rankprofile[0].fef.property[07].value "fieldTermMatch(m2.value.a,0).occurrences" +rankprofile[0].fef.property[08].name "vespa.summary.feature" +rankprofile[0].fef.property[08].value "fieldLength(m2.value.a)" +rankprofile[0].fef.property[09].name "vespa.summary.feature" +rankprofile[0].fef.property[09].value "fieldTermMatch(m3.value,0).firstPosition" +rankprofile[0].fef.property[10].name "vespa.summary.feature" +rankprofile[0].fef.property[10].value "fieldTermMatch(m3.value,0).occurrences" +rankprofile[0].fef.property[11].name "vespa.summary.feature" +rankprofile[0].fef.property[11].value "fieldLength(m3.value)" +rankprofile[0].fef.property[12].name "vespa.summary.feature" +rankprofile[0].fef.property[12].value "fieldTermMatch(m4.value.value,0).firstPosition" +rankprofile[0].fef.property[13].name "vespa.summary.feature" +rankprofile[0].fef.property[13].value "fieldTermMatch(m4.value.value,0).occurrences" +rankprofile[0].fef.property[14].name "vespa.summary.feature" +rankprofile[0].fef.property[14].value "fieldLength(m4.value.value)" +rankprofile[1].name "unranked" +rankprofile[1].fef.property[4] +rankprofile[1].fef.property[0].name "vespa.rank.firstphase" +rankprofile[1].fef.property[0].value "value(0)" +rankprofile[1].fef.property[1].name "vespa.hitcollector.heapsize" +rankprofile[1].fef.property[1].value "0" +rankprofile[1].fef.property[2].name "vespa.hitcollector.arraysize" +rankprofile[1].fef.property[2].value "0" +rankprofile[1].fef.property[3].name "vespa.dump.ignoredefaultfeatures" +rankprofile[1].fef.property[3].value "true" diff --git a/streamingvisitors/src/tests/searchvisitor/cfg/rank-profiles.simple.cfg b/streamingvisitors/src/tests/searchvisitor/cfg/rank-profiles.simple.cfg new file mode 100644 index 00000000000..e69de29bb2d --- /dev/null +++ b/streamingvisitors/src/tests/searchvisitor/cfg/rank-profiles.simple.cfg diff --git a/streamingvisitors/src/tests/searchvisitor/cfg/summary.aaa.cfg b/streamingvisitors/src/tests/searchvisitor/cfg/summary.aaa.cfg new file mode 100644 index 00000000000..8cc32ed5ea4 --- /dev/null +++ b/streamingvisitors/src/tests/searchvisitor/cfg/summary.aaa.cfg @@ -0,0 +1,30 @@ +defaultsummaryid 197963550 +classes[2] +classes[0].id 190911431 +classes[0].name "attributeprefetch" +classes[0].fields[3] +classes[0].fields[0].name "name" +classes[0].fields[0].type "longstring" +classes[0].fields[1].name "rankfeatures" +classes[0].fields[1].type "longstring" +classes[0].fields[2].name "summaryfeatures" +classes[0].fields[2].type "longstring" +classes[1].id 197963550 +classes[1].name "maptest" +classes[1].fields[8] +classes[1].fields[0].name "documentid" +classes[1].fields[0].type "longstring" +classes[1].fields[1].name "m1" +classes[1].fields[1].type "jsonstring" +classes[1].fields[2].name "m2" +classes[1].fields[2].type "jsonstring" +classes[1].fields[3].name "m3" +classes[1].fields[3].type "jsonstring" +classes[1].fields[4].name "m4" +classes[1].fields[4].type "jsonstring" +classes[1].fields[5].name "name" +classes[1].fields[5].type "longstring" +classes[1].fields[6].name "rankfeatures" +classes[1].fields[6].type "longstring" +classes[1].fields[7].name "summaryfeatures" +classes[1].fields[7].type "longstring" diff --git a/streamingvisitors/src/tests/searchvisitor/cfg/summary.simple.cfg b/streamingvisitors/src/tests/searchvisitor/cfg/summary.simple.cfg new file mode 100644 index 00000000000..e69de29bb2d --- /dev/null +++ b/streamingvisitors/src/tests/searchvisitor/cfg/summary.simple.cfg diff --git a/streamingvisitors/src/tests/searchvisitor/cfg/summarymap.aaa.cfg b/streamingvisitors/src/tests/searchvisitor/cfg/summarymap.aaa.cfg new file mode 100644 index 00000000000..1c9567431ae --- /dev/null +++ b/streamingvisitors/src/tests/searchvisitor/cfg/summarymap.aaa.cfg @@ -0,0 +1,11 @@ +defaultoutputclass -1 +override[3] +override[0].arguments "name" +override[0].command "attribute" +override[0].field "name" +override[1].arguments "" +override[1].command "rankfeatures" +override[1].field "rankfeatures" +override[2].arguments "" +override[2].command "summaryfeatures" +override[2].field "summaryfeatures" diff --git a/streamingvisitors/src/tests/searchvisitor/cfg/summarymap.simple.cfg b/streamingvisitors/src/tests/searchvisitor/cfg/summarymap.simple.cfg new file mode 100644 index 00000000000..e69de29bb2d --- /dev/null +++ b/streamingvisitors/src/tests/searchvisitor/cfg/summarymap.simple.cfg diff --git a/streamingvisitors/src/tests/searchvisitor/cfg/vsmfields.aaa.cfg b/streamingvisitors/src/tests/searchvisitor/cfg/vsmfields.aaa.cfg new file mode 100644 index 00000000000..4d976764bd9 --- /dev/null +++ b/streamingvisitors/src/tests/searchvisitor/cfg/vsmfields.aaa.cfg @@ -0,0 +1,98 @@ +documentverificationlevel 0 +searchall 1 +documenttype[1] +documenttype[0].name "maptest" +documenttype[0].index[17] +documenttype[0].index[00].name "m1" +documenttype[0].index[00].field[2] +documenttype[0].index[00].field[0].name "m1.key" +documenttype[0].index[00].field[1].name "m1.value" +documenttype[0].index[01].name "m1.key" +documenttype[0].index[01].field[1] +documenttype[0].index[01].field[0].name "m1.key" +documenttype[0].index[02].name "m1.value" +documenttype[0].index[02].field[1] +documenttype[0].index[02].field[0].name "m1.value" +documenttype[0].index[03].name "m2" +documenttype[0].index[03].field[3] +documenttype[0].index[03].field[0].name "m2.key" +documenttype[0].index[03].field[1].name "m2.value.a" +documenttype[0].index[03].field[2].name "m2.value.b" +documenttype[0].index[04].name "m2.key" +documenttype[0].index[04].field[1] +documenttype[0].index[04].field[0].name "m2.key" +documenttype[0].index[05].name "m2.value" +documenttype[0].index[05].field[2] +documenttype[0].index[05].field[0].name "m2.value.a" +documenttype[0].index[05].field[1].name "m2.value.b" +documenttype[0].index[06].name "m2.value.a" +documenttype[0].index[06].field[1] +documenttype[0].index[06].field[0].name "m2.value.a" +documenttype[0].index[07].name "m2.value.b" +documenttype[0].index[07].field[1] +documenttype[0].index[07].field[0].name "m2.value.b" +documenttype[0].index[08].name "m3" +documenttype[0].index[08].field[2] +documenttype[0].index[08].field[0].name "m3.key" +documenttype[0].index[08].field[1].name "m3.value" +documenttype[0].index[09].name "m3.key" +documenttype[0].index[09].field[1] +documenttype[0].index[09].field[0].name "m3.key" +documenttype[0].index[10].name "m3.value" +documenttype[0].index[10].field[1] +documenttype[0].index[10].field[0].name "m3.value" +documenttype[0].index[11].name "m4" +documenttype[0].index[11].field[3] +documenttype[0].index[11].field[0].name "m4.key" +documenttype[0].index[11].field[1].name "m4.value.key" +documenttype[0].index[11].field[2].name "m4.value.value" +documenttype[0].index[12].name "m4.key" +documenttype[0].index[12].field[1] +documenttype[0].index[12].field[0].name "m4.key" +documenttype[0].index[13].name "m4.value" +documenttype[0].index[13].field[2] +documenttype[0].index[13].field[0].name "m4.value.key" +documenttype[0].index[13].field[1].name "m4.value.value" +documenttype[0].index[14].name "m4.value.key" +documenttype[0].index[14].field[1] +documenttype[0].index[14].field[0].name "m4.value.key" +documenttype[0].index[15].name "m4.value.value" +documenttype[0].index[15].field[1] +documenttype[0].index[15].field[0].name "m4.value.value" +documenttype[0].index[16].name "name" +documenttype[0].index[16].field[1] +documenttype[0].index[16].field[0].name "name" +fieldspec[11] +fieldspec[00].arg1 "" +fieldspec[00].name "m1.key" +fieldspec[00].searchmethod AUTOUTF8 +fieldspec[01].arg1 "" +fieldspec[01].name "m1.value" +fieldspec[01].searchmethod AUTOUTF8 +fieldspec[02].arg1 "" +fieldspec[02].name "m2.key" +fieldspec[02].searchmethod AUTOUTF8 +fieldspec[03].arg1 "" +fieldspec[03].name "m2.value.a" +fieldspec[03].searchmethod AUTOUTF8 +fieldspec[04].arg1 "" +fieldspec[04].name "m2.value.b" +fieldspec[04].searchmethod AUTOUTF8 +fieldspec[05].arg1 "" +fieldspec[05].name "m3.key" +fieldspec[05].searchmethod AUTOUTF8 +fieldspec[06].arg1 "" +fieldspec[06].name "m3.value" +fieldspec[06].searchmethod AUTOUTF8 +fieldspec[07].arg1 "" +fieldspec[07].name "m4.key" +fieldspec[07].searchmethod AUTOUTF8 +fieldspec[08].arg1 "" +fieldspec[08].name "m4.value.key" +fieldspec[08].searchmethod AUTOUTF8 +fieldspec[09].arg1 "" +fieldspec[09].name "m4.value.value" +fieldspec[09].searchmethod AUTOUTF8 +fieldspec[10].arg1 "" +fieldspec[10].name "name" +fieldspec[10].searchmethod AUTOUTF8 diff --git a/streamingvisitors/src/tests/searchvisitor/cfg/vsmfields.simple.cfg b/streamingvisitors/src/tests/searchvisitor/cfg/vsmfields.simple.cfg new file mode 100644 index 00000000000..e69de29bb2d --- /dev/null +++ b/streamingvisitors/src/tests/searchvisitor/cfg/vsmfields.simple.cfg diff --git a/streamingvisitors/src/tests/searchvisitor/cfg/vsmsummary.aaa.cfg b/streamingvisitors/src/tests/searchvisitor/cfg/vsmsummary.aaa.cfg new file mode 100644 index 00000000000..664778d40a8 --- /dev/null +++ b/streamingvisitors/src/tests/searchvisitor/cfg/vsmsummary.aaa.cfg @@ -0,0 +1,26 @@ +outputclass "" +fieldmap[6] +fieldmap[0].command NONE +fieldmap[0].summary "m1" +fieldmap[0].document[1] +fieldmap[0].document[0].field "m1" +fieldmap[1].command NONE +fieldmap[1].summary "m2" +fieldmap[1].document[3] +fieldmap[1].document[0].field "m2.key" +fieldmap[1].document[1].field "m2.value.a" +fieldmap[1].document[2].field "m2.value.b" +fieldmap[2].command NONE +fieldmap[2].summary "m3" +fieldmap[2].document[1] +fieldmap[2].document[0].field "m3" +fieldmap[3].command NONE +fieldmap[3].summary "m4" +fieldmap[3].document[1] +fieldmap[3].document[0].field "m4" +fieldmap[4].command NONE +fieldmap[4].summary "rankfeatures" +fieldmap[4].document[0] +fieldmap[5].command NONE +fieldmap[5].summary "summaryfeatures" +fieldmap[5].document[0] diff --git a/streamingvisitors/src/tests/searchvisitor/cfg/vsmsummary.simple.cfg b/streamingvisitors/src/tests/searchvisitor/cfg/vsmsummary.simple.cfg new file mode 100644 index 00000000000..e69de29bb2d --- /dev/null +++ b/streamingvisitors/src/tests/searchvisitor/cfg/vsmsummary.simple.cfg diff --git a/streamingvisitors/src/tests/searchvisitor/searchvisitor.cpp b/streamingvisitors/src/tests/searchvisitor/searchvisitor.cpp new file mode 100644 index 00000000000..77df70ad256 --- /dev/null +++ b/streamingvisitors/src/tests/searchvisitor/searchvisitor.cpp @@ -0,0 +1,123 @@ +// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +#include <vespa/fastos/fastos.h> +#include <vespa/vespalib/testkit/testapp.h> +#include <vespa/searchlib/query/tree/querybuilder.h> +#include <vespa/searchlib/query/tree/simplequery.h> +#include <vespa/searchlib/query/tree/stackdumpcreator.h> +#include <vespa/searchvisitor/searchenvironment.h> +#include <vespa/searchvisitor/searchvisitor.h> +#include <vespa/storage/frameworkimpl/component/storagecomponentregisterimpl.h> +#include <vespa/storageframework/defaultimplementation/clock/fakeclock.h> + +using namespace search; +using namespace search::query; +using namespace document; + +namespace storage { + +class SearchVisitorTest : public vespalib::TestApp +{ +private: + framework::defaultimplementation::FakeClock _clock; + StorageComponentRegisterImpl _componentRegister; + std::unique_ptr<StorageComponent> _component; + SearchEnvironment _env; + void testSearchVisitor(); + void testSearchEnvironment(); + void testCreateSearchVisitor(const vespalib::string & dir, const vdslib::Parameters & parameters); + void testOnlyRequireWeakReadConsistency(); + +public: + SearchVisitorTest(); + int Main(); +}; + +SearchVisitorTest::SearchVisitorTest() : + vespalib::TestApp(), + _componentRegister(), + _env("dir:cfg") +{ + _componentRegister.setNodeInfo("mycluster", lib::NodeType::STORAGE, 1); + _componentRegister.setClock(_clock); + StorageComponent::DocumentTypeRepoSP repo(new DocumentTypeRepo(readDocumenttypesConfig("cfg/documenttypes.cfg"))); + _componentRegister.setDocumentTypeRepo(repo); + _component.reset(new StorageComponent(_componentRegister, "storage")); +}; + +std::vector<spi::DocEntry::LP> +createDocuments(const vespalib::string & dir) +{ + (void) dir; + std::vector<spi::DocEntry::LP> documents; + spi::Timestamp ts; + document::Document::UP doc(new document::Document()); + spi::DocEntry::LP e(new spi::DocEntry(ts, 0, std::move(doc))); + documents.push_back(e); + return documents; +} + +void +SearchVisitorTest::testCreateSearchVisitor(const vespalib::string & dir, const vdslib::Parameters & params) +{ + SearchVisitorFactory sFactory(dir); + VisitorFactory & factory(sFactory); + std::unique_ptr<Visitor> sv(static_cast<SearchVisitor *>(factory.makeVisitor(*_component, _env, params))); + document::OrderingSpecification orderSpec; + document::BucketId bucketId; + std::vector<spi::DocEntry::LP> documents(createDocuments(dir)); + Visitor::HitCounter hitCounter(&orderSpec); + sv->handleDocuments(bucketId, documents, hitCounter); +} + +void +SearchVisitorTest::testSearchEnvironment() +{ + EXPECT_TRUE(_env.getVSMAdapter("simple") != NULL); + EXPECT_TRUE(_env.getRankManager("simple") != NULL); +} + +void +SearchVisitorTest::testSearchVisitor() +{ + vdslib::Parameters params; + params.set("searchcluster", "aaa"); + params.set("queryflags", "0x40000"); + params.set("summarycount", "3"); + params.set("summaryclass", "petra"); + params.set("rankprofile", "default"); + + QueryBuilder<SimpleQueryNodeTypes> builder; + builder.addStringTerm("maptest", "sddocname", 0, Weight(0)); + Node::UP node = builder.build(); + vespalib::string stackDump = StackDumpCreator::create(*node); + + params.set("query", stackDump); + testCreateSearchVisitor("dir:cfg", params); +} + +void +SearchVisitorTest::testOnlyRequireWeakReadConsistency() +{ + SearchVisitorFactory factory("dir:cfg"); + VisitorFactory& factoryBase(factory); + vdslib::Parameters params; + std::unique_ptr<Visitor> sv( + factoryBase.makeVisitor(*_component, _env, params)); + EXPECT_TRUE(sv->getRequiredReadConsistency() == spi::ReadConsistency::WEAK); +} + +int +SearchVisitorTest::Main() +{ + TEST_INIT("searchvisitor_test"); + + testSearchVisitor(); TEST_FLUSH(); + testSearchEnvironment(); TEST_FLUSH(); + testOnlyRequireWeakReadConsistency(); TEST_FLUSH(); + + TEST_DONE(); +} + +} // namespace storage + +TEST_APPHOOK(storage::SearchVisitorTest) |