From 6fbb34833b9557dfd323de6eaf2436bb38eb8e6c Mon Sep 17 00:00:00 2001 From: Demian Katz <demian.katz@villanova.edu> Date: Fri, 30 Aug 2013 11:27:32 -0400 Subject: [PATCH] Fixed bug: incorrect advanced search spelling query. --- .../VuFindSearch/Backend/Solr/QueryBuilder.php | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/module/VuFindSearch/src/VuFindSearch/Backend/Solr/QueryBuilder.php b/module/VuFindSearch/src/VuFindSearch/Backend/Solr/QueryBuilder.php index a2082950e96..8d8bd87ff22 100644 --- a/module/VuFindSearch/src/VuFindSearch/Backend/Solr/QueryBuilder.php +++ b/module/VuFindSearch/src/VuFindSearch/Backend/Solr/QueryBuilder.php @@ -123,6 +123,14 @@ class QueryBuilder implements QueryBuilderInterface */ public function build(AbstractQuery $query) { + $params = new ParamBag(); + + // Add spelling query if applicable -- note that we mus set this up before + // we process the main query in order to avoid unwanted extra syntax: + if ($this->createSpellingQuery) { + $params->set('spellcheck.q', $query->getAllTerms()); + } + if ($query instanceOf QueryGroup) { $query = $this->reduceQueryGroup($query); } else { @@ -132,8 +140,6 @@ class QueryBuilder implements QueryBuilderInterface $string = $query->getString() ?: '*:*'; $handler = $this->getSearchHandler($query->getHandler()); - $params = new ParamBag(); - if ($this->containsAdvancedLuceneSyntax($string)) { if ($handler) { $string = $this->createAdvancedInnerSearchString($string, $handler); @@ -166,11 +172,6 @@ class QueryBuilder implements QueryBuilderInterface } $params->set('q', $string); - // Add spelling query if applicable: - if ($this->createSpellingQuery) { - $params->set('spellcheck.q', $query->getAllTerms()); - } - return $params; } -- GitLab