From e20d53a77fcd6b4a8aafbfabfe9cc48dc97a9ee9 Mon Sep 17 00:00:00 2001 From: Demian Katz <demian.katz@villanova.edu> Date: Tue, 2 Jul 2013 09:07:00 -0400 Subject: [PATCH] Further refinements to hl.q logic. Thanks to David Maus for refactoring suggestions. --- .../src/VuFindSearch/Backend/Solr/QueryBuilder.php | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/module/VuFindSearch/src/VuFindSearch/Backend/Solr/QueryBuilder.php b/module/VuFindSearch/src/VuFindSearch/Backend/Solr/QueryBuilder.php index 6baae5858a2..33d7db993b2 100644 --- a/module/VuFindSearch/src/VuFindSearch/Backend/Solr/QueryBuilder.php +++ b/module/VuFindSearch/src/VuFindSearch/Backend/Solr/QueryBuilder.php @@ -121,15 +121,17 @@ class QueryBuilder implements QueryBuilderInterface $params = new ParamBag(); if ($this->containsAdvancedLuceneSyntax($string)) { - if ($handler) { - $params->set( - 'hl.q', - $this->createAdvancedInnerSearchString($string, $handler) - ); $string = $this->createAdvancedInnerSearchString($string, $handler); if ($handler->hasDismax()) { + $oldString = $string; $string = $handler->createBoostQueryString($string); + + // If a boost was added, we don't want to highlight based on + // the boost query, so we should use the non-boosted version: + if ($oldString != $string) { + $params->set('hl.q', $oldString); + } } } } else { -- GitLab