diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2017-08-16 11:10:08 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2017-08-16 11:10:08 +0200 |
commit | 5d8d28cac163b560c83b91fa1429556c760115bb (patch) | |
tree | 65ec0b7de4227a28c9777f121ab27463d1f15d30 /searchcore | |
parent | df6f93103bc3764bc8c66a03216d84f45ddbbe91 (diff) |
Also propagate rank profile
Diffstat (limited to 'searchcore')
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 { |