aboutsummaryrefslogtreecommitdiffstats
path: root/container-search/src/test/java/com/yahoo/search/dispatch
diff options
context:
space:
mode:
authorGeir Storli <geirst@yahooinc.com>2023-01-20 16:50:50 +0000
committerGeir Storli <geirst@yahooinc.com>2023-01-20 16:50:50 +0000
commitea7f8d4d792c122ef9b603deebdc69000026cb72 (patch)
tree42c1937e1b1460650091091afa244ec773aad024 /container-search/src/test/java/com/yahoo/search/dispatch
parentf01c1607b1637eecb40a45c32b851ebeec539fe7 (diff)
Add query trace parameters for profiling backend query evaluation.
With this change, profiling of matching, first-phase ranking, and second-phase ranking can be tuned separately.
Diffstat (limited to 'container-search/src/test/java/com/yahoo/search/dispatch')
-rw-r--r--container-search/src/test/java/com/yahoo/search/dispatch/rpc/ProtobufSerializationTest.java23
1 files changed, 23 insertions, 0 deletions
diff --git a/container-search/src/test/java/com/yahoo/search/dispatch/rpc/ProtobufSerializationTest.java b/container-search/src/test/java/com/yahoo/search/dispatch/rpc/ProtobufSerializationTest.java
index 6f7a1f3bd8b..80f7375b6eb 100644
--- a/container-search/src/test/java/com/yahoo/search/dispatch/rpc/ProtobufSerializationTest.java
+++ b/container-search/src/test/java/com/yahoo/search/dispatch/rpc/ProtobufSerializationTest.java
@@ -44,6 +44,7 @@ public class ProtobufSerializationTest {
contentsOf(request1.getTensorFeatureOverrides(0).getValue()));
assertEquals("\"\\006\\001\\001\\001x\\001?\\231\\231\\232\"",
contentsOf(request1.getTensorFeatureOverrides(1).getValue()));
+ assertFalse(request1.hasProfiling());
query.prepare(); // calling prepare() moves "overrides" to "features" - content stays the same
SearchProtocol.SearchRequest request2 = ProtobufSerialization.convertFromQuery(query, 9, "serverId", 0.5);
@@ -136,4 +137,26 @@ public class ProtobufSerializationTest {
}
}
+ @Test
+ void profiling_parameters_are_serialized_in_search_request() {
+ var q = new Query("?query=test&trace.level=1&" +
+ "trace.profiling.matching.depth=3&" +
+ "trace.profiling.firstPhaseRanking.depth=5&" +
+ "trace.profiling.secondPhaseRanking.depth=-7");
+ var req = ProtobufSerialization.convertFromQuery(q, 1, "serverId", 0.5);
+ assertEquals(3, req.getProfiling().getMatch().getDepth());
+ assertEquals(5, req.getProfiling().getFirstPhase().getDepth());
+ assertEquals(-7, req.getProfiling().getSecondPhase().getDepth());
+ }
+
+ @Test
+ void only_set_profiling_parameters_are_serialized_in_search_request() {
+ var q = new Query("?query=test&trace.level=1&" +
+ "trace.profiling.matching.depth=3");
+ var req = ProtobufSerialization.convertFromQuery(q, 1, "serverId", 0.5);
+ assertEquals(3, req.getProfiling().getMatch().getDepth());
+ assertFalse(req.getProfiling().hasFirstPhase());
+ assertFalse(req.getProfiling().hasSecondPhase());
+ }
+
}