diff options
author | Geir Storli <geirst@yahooinc.com> | 2023-04-28 09:31:47 +0000 |
---|---|---|
committer | Geir Storli <geirst@yahooinc.com> | 2023-04-28 09:31:47 +0000 |
commit | 07f6d5be822832bb5c4bd31e0bdf23d0a8b5ac99 (patch) | |
tree | b31f85524b26fce23d539ba1d1ff27a3e6bd011c /streamingvisitors/src/tests/searchvisitor/searchvisitor_test.cpp | |
parent | 9c04252f9c8573bdbb787b5e3a0f671487eb412e (diff) |
Test match features returned in streaming search result.
Diffstat (limited to 'streamingvisitors/src/tests/searchvisitor/searchvisitor_test.cpp')
-rw-r--r-- | streamingvisitors/src/tests/searchvisitor/searchvisitor_test.cpp | 33 |
1 files changed, 28 insertions, 5 deletions
diff --git a/streamingvisitors/src/tests/searchvisitor/searchvisitor_test.cpp b/streamingvisitors/src/tests/searchvisitor/searchvisitor_test.cpp index b93a2c25f82..0004e253aff 100644 --- a/streamingvisitors/src/tests/searchvisitor/searchvisitor_test.cpp +++ b/streamingvisitors/src/tests/searchvisitor/searchvisitor_test.cpp @@ -72,8 +72,8 @@ public: RequestBuilder() : _params(), _builder(), _term_id(1) { search_cluster("mycl"); - rank_profile("myrank"); - summary_class("mysum"); + rank_profile("default"); + summary_class("default"); summary_count(10); } RequestBuilder& set_param(const vespalib::string& key, const vespalib::string& value) { @@ -222,13 +222,36 @@ expect_summary(const HitVector& exp_summary, documentapi::QueryResultMessage& re EXPECT_EQ(exp_summary, to_hit_vector(res.getDocumentSummary())); } +void +expect_match_features(const std::vector<vespalib::string>& exp_names, + const std::vector<vespalib::FeatureSet::Value>& exp_values, + documentapi::QueryResultMessage& res) +{ + const auto& mf = res.getSearchResult().get_match_features(); + EXPECT_EQ(exp_names, mf.names); + EXPECT_EQ(exp_values, mf.values); +} + + TEST_F(SearchVisitorTest, basic_query_execution_in_search_visitor) { - auto res = execute_query(RequestBuilder(). - number_term("[5;10]", "id").build(), - {{3},{7},{4},{5},{9}}); + auto res = execute_query(RequestBuilder().number_term("[5;10]", "id").build(), + {{3},{7},{4},{5},{9}}); expect_hits({{9,19.0}, {7,17.0}, {5,15.0}}, *res); + // Document summaries are ordered in document id order: expect_summary({{5}, {7}, {9}}, *res); + expect_match_features({}, {}, *res); +} + +TEST_F(SearchVisitorTest, match_features_returned_in_search_result) +{ + auto res = execute_query(RequestBuilder(). + rank_profile("match_features"). + number_term("[5;10]", "id").build(), + {{5},{4},{7}}); + expect_hits({{7,17.0}, {5,15.0}}, *res); + // Raw match features are ordered in matching order. + expect_match_features({"attribute(id)", "myfunc"}, {{5.0}, {25.0}, {7.0}, {27.0}}, *res); } TEST_F(SearchVisitorTest, visitor_only_require_weak_read_consistency) |