From dc5b94486304fc5353640c0341cdfa11d3367fb2 Mon Sep 17 00:00:00 2001 From: Kyle M Hall Date: Wed, 21 May 2014 11:09:04 -0700 Subject: [PATCH] Bug 12323 [SIGNED OFF] - Acquisitions search results fixed in order of biblionumber The acquisitions search is exhibiting the same behavior as bug 11410. Results are always fixed in order of biblionumber, among other possible issues ( including the ampersand issue ). Test Plan: 1) From an open basket, choose "Add to basket" 2) Run a search for "From an existing record" 3) Note the "View MARC" URLs are fixed in order of biblionumber 4) Apply this patch 5) Refresh the page 6) Note the results are no longer fixed in order of biblionumber Signed-off-by: David Cook Works as described. I think the code could be a bit tidier, but I think it makes sense to use buildQuery here. It'll detect CCL, CQL, and PQF queries, as well as parsing a regular keyword search as one would expect when searching the catalogue. It also has the added bonus of performing relevance searching, so long as QueryAutoTruncation is off, and so long as library staff avoid using the "*" truncation wildcard (see bug 12430). While there are simpler ways to fix this acq bug, I think this was probably the best move, as it adds a bit to the consistency of what librarians can expect from their search results. Signed-off-by: Jonathan Druart Same result with and without the patch but I agree with the changes. BuildQuery should be called before SimpleSearch if QP is not used. Signed-off-by: Tomas Cohen Arazi --- acqui/neworderbiblio.pl | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/acqui/neworderbiblio.pl b/acqui/neworderbiblio.pl index dfcc5340f8..e7c427ce36 100755 --- a/acqui/neworderbiblio.pl +++ b/acqui/neworderbiblio.pl @@ -95,8 +95,17 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user( # Searching the catalog. - # find results -my ( $error, $marcresults, $total_hits ) = SimpleSearch( $query, $results_per_page * ( $page - 1 ), $results_per_page ); +my @operands = $query; +my $QParser; +$QParser = C4::Context->queryparser if (C4::Context->preference('UseQueryParser')); +my $builtquery; +if ($QParser) { + $builtquery = $query; +} else { + my ( $builterror,$simple_query,$query_cgi,$query_desc,$limit,$limit_cgi,$limit_desc,$stopwords_removed,$query_type); + ( $builterror,$builtquery,$simple_query,$query_cgi,$query_desc,$limit,$limit_cgi,$limit_desc,$stopwords_removed,$query_type) = buildQuery(undef,\@operands); +} +my ( $error, $marcresults, $total_hits ) = SimpleSearch( $builtquery, $results_per_page * ( $page - 1 ), $results_per_page ); if (defined $error) { $template->param( -- 2.39.5