summaryrefslogtreecommitdiffstats
path: root/searchcore
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2017-08-16 11:10:08 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2017-08-16 11:10:08 +0200
commit5d8d28cac163b560c83b91fa1429556c760115bb (patch)
tree65ec0b7de4227a28c9777f121ab27463d1f15d30 /searchcore
parentdf6f93103bc3764bc8c66a03216d84f45ddbbe91 (diff)
Also propagate rank profile
Diffstat (limited to 'searchcore')
-rw-r--r--searchcore/src/tests/proton/summaryengine/summaryengine.cpp20
-rw-r--r--searchcore/src/vespa/searchcore/proton/summaryengine/docsum_by_slime.cpp3
-rw-r--r--searchcore/src/vespa/searchcore/proton/summaryengine/isearchhandler.h4
3 files changed, 18 insertions, 9 deletions
diff --git a/searchcore/src/tests/proton/summaryengine/summaryengine.cpp b/searchcore/src/tests/proton/summaryengine/summaryengine.cpp
index f0e8f35acde..58460f3572a 100644
--- a/searchcore/src/tests/proton/summaryengine/summaryengine.cpp
+++ b/searchcore/src/tests/proton/summaryengine/summaryengine.cpp
@@ -221,13 +221,18 @@ verify(vespalib::stringref exp, const Slime &slime) {
}
Slime
-createSlimeRequestLarger(size_t num, const vespalib::string & sessionId = vespalib::string()) {
+createSlimeRequestLarger(size_t num,
+ const vespalib::string & sessionId = vespalib::string(),
+ const vespalib::string & ranking = vespalib::string()) {
Slime r;
Cursor &root = r.setObject();
root.setString("class", "your-summary");
if ( ! sessionId.empty()) {
root.setData("sessionid", sessionId);
}
+ if (!ranking.empty()) {
+ root.setString("ranking", ranking);
+ }
Cursor &array = root.setArray("gids");
for (size_t i(0); i < num; i++) {
array.addData(Memory(GID1, 12));
@@ -237,8 +242,9 @@ createSlimeRequestLarger(size_t num, const vespalib::string & sessionId = vespal
}
Slime
-createSlimeRequest(const vespalib::string & sessionId = vespalib::string()) {
- return createSlimeRequestLarger(1, sessionId);
+createSlimeRequest(const vespalib::string & sessionId = vespalib::string(),
+ const vespalib::string & ranking = vespalib::string()) {
+ return createSlimeRequestLarger(1, sessionId, ranking);
}
TEST("requireThatSlimeRequestIsConvertedCorrectly") {
@@ -254,16 +260,18 @@ TEST("requireThatSlimeRequestIsConvertedCorrectly") {
EXPECT_EQUAL("your-summary", r->resultClassName);
EXPECT_FALSE(r->propertiesMap.cacheProperties().lookup("query").found());
EXPECT_TRUE(r->sessionId.empty());
+ EXPECT_TRUE(r->ranking.empty());
EXPECT_EQUAL(2u, r->hits.size());
EXPECT_EQUAL(GlobalId(GID1), r->hits[0].gid);
EXPECT_EQUAL(GlobalId(GID2), r->hits[1].gid);
}
TEST("require that presence of sessionid affect both request.sessionid and enables cache") {
- vespalib::Slime slimeRequest = createSlimeRequest("1.some.key.7");
+ vespalib::Slime slimeRequest = createSlimeRequest("1.some.key.7", "my-rank-profile");
TEST_DO(verify("{"
" class: 'your-summary',"
- " sessionid: '1.some.key.7',"
+ " sessionid: '0x312E736F6D652E6B65792E37',"
+ " ranking: 'my-rank-profile',"
" gids: ["
" '0x6162636465666768696A6B6C',"
" '0x62636465666768696A6B6C6D'"
@@ -271,6 +279,8 @@ TEST("require that presence of sessionid affect both request.sessionid and enabl
"}", slimeRequest));
DocsumRequest::UP r = DocsumBySlime::slimeToRequest(slimeRequest.get());
EXPECT_EQUAL("your-summary", r->resultClassName);
+ EXPECT_EQUAL("my-rank-profile", r->ranking);
+
EXPECT_EQUAL(0, strncmp("1.some.key.7", &r->sessionId[0],r->sessionId.size()));
EXPECT_TRUE(r->propertiesMap.cacheProperties().lookup("query").found());
EXPECT_EQUAL(2u, r->hits.size());
diff --git a/searchcore/src/vespa/searchcore/proton/summaryengine/docsum_by_slime.cpp b/searchcore/src/vespa/searchcore/proton/summaryengine/docsum_by_slime.cpp
index 061e8b37526..9cdb21e8758 100644
--- a/searchcore/src/vespa/searchcore/proton/summaryengine/docsum_by_slime.cpp
+++ b/searchcore/src/vespa/searchcore/proton/summaryengine/docsum_by_slime.cpp
@@ -28,6 +28,7 @@ using document::CompressionConfig;
namespace {
Memory SESSIONID("sessionid");
+Memory RANKING("ranking");
Memory SUMMARYCLASS("class");
Memory GIDS("gids");
Memory DOCSUM("docsum");
@@ -69,7 +70,7 @@ DocsumBySlime::slimeToRequest(const Inspector & request)
memcpy(&docsumRequest->sessionId[0], m.data, m.size);
docsumRequest->propertiesMap.cacheProperties().add("query", "true");
}
-
+ docsumRequest->ranking = request[RANKING].asString().make_string();
Inspector & gids = request[GIDS];
docsumRequest->hits.reserve(gids.entries());
GidTraverser gidFiller(docsumRequest->hits);
diff --git a/searchcore/src/vespa/searchcore/proton/summaryengine/isearchhandler.h b/searchcore/src/vespa/searchcore/proton/summaryengine/isearchhandler.h
index 98b0368b0b5..8c61a1c39d9 100644
--- a/searchcore/src/vespa/searchcore/proton/summaryengine/isearchhandler.h
+++ b/searchcore/src/vespa/searchcore/proton/summaryengine/isearchhandler.h
@@ -3,14 +3,12 @@
#include <vespa/vespalib/util/thread_bundle.h>
-namespace search {
-namespace engine {
+namespace search::engine {
class SearchRequest;
class SearchReply;
class DocsumRequest;
class DocsumReply;
}
-}
namespace proton {