summaryrefslogtreecommitdiffstats
path: root/container-search/src/main/java/com/yahoo/search/handler
diff options
context:
space:
mode:
authorHenrik <henrik.hoiness@online.no>2018-07-30 14:08:13 +0200
committerHenrik <henrik.hoiness@online.no>2018-07-30 14:08:13 +0200
commitf6cbbf8862da1ba9972cf6509c754afa4037c74d (patch)
treec2a774c28043f3a2b8a57871b5d6edb1bf0a0eac /container-search/src/main/java/com/yahoo/search/handler
parent0a5e370b59373d8147e2a8e682bc3296eec0d639 (diff)
Solved queryProfile always being null when using JSON-query. QueryProfile was set before getting the JSON-payload with queryProfileName
Diffstat (limited to 'container-search/src/main/java/com/yahoo/search/handler')
-rw-r--r--container-search/src/main/java/com/yahoo/search/handler/SearchHandler.java20
1 files changed, 15 insertions, 5 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/handler/SearchHandler.java b/container-search/src/main/java/com/yahoo/search/handler/SearchHandler.java
index 3bfaee658f9..1ca8feed451 100644
--- a/container-search/src/main/java/com/yahoo/search/handler/SearchHandler.java
+++ b/container-search/src/main/java/com/yahoo/search/handler/SearchHandler.java
@@ -283,12 +283,14 @@ public class SearchHandler extends LoggingRequestHandler {
private HttpSearchResponse handleBody(HttpRequest request){
- // Find query profile
- String queryProfileName = request.getProperty("queryProfile");
- CompiledQueryProfile queryProfile = queryProfileRegistry.findQueryProfile(queryProfileName);
+
boolean benchmarkOutput = VespaHeaders.benchmarkOutput(request);
- Query query = queryFromRequest(request, queryProfile);
+ Query query = queryFromRequest(request);
+
+ // Get query profile
+ String queryProfileName = query.getRequestMap().getOrDefault("queryProfile", null);
+ CompiledQueryProfile queryProfile = queryProfileRegistry.findQueryProfile(queryProfileName);
boolean benchmarkCoverage = VespaHeaders.benchmarkCoverage(benchmarkOutput, request.getJDiscRequest().headers());
@@ -558,7 +560,8 @@ public class SearchHandler extends LoggingRequestHandler {
return searchChainRegistry;
}
- private Query queryFromRequest(HttpRequest request, CompiledQueryProfile queryProfile){
+ private Query queryFromRequest(HttpRequest request){
+
if (request.getMethod() == com.yahoo.jdisc.http.HttpRequest.Method.POST
&& JSON_CONTENT_TYPE.equals(request.getHeader(com.yahoo.jdisc.http.HttpHeaders.Names.CONTENT_TYPE))) {
Inspector inspector;
@@ -576,10 +579,17 @@ public class SearchHandler extends LoggingRequestHandler {
// Create request-mapping
Map<String, String> requestMap = new HashMap<>();
createRequestMapping(inspector, requestMap, "");
+
+ String queryProfileName = requestMap.getOrDefault("queryProfile", null);
+ CompiledQueryProfile queryProfile = queryProfileRegistry.findQueryProfile(queryProfileName);
+
return new Query(request, requestMap, queryProfile);
} else {
+ String queryProfileName = request.getProperty("queryProfile");
+ CompiledQueryProfile queryProfile = queryProfileRegistry.findQueryProfile(queryProfileName);
+
return new Query(request, queryProfile);
}