From 1d8b1fafc4dbdc54108dbe2ff949d612cde6b99e Mon Sep 17 00:00:00 2001 From: Fridolin Somers Date: Wed, 29 May 2019 08:15:08 +0200 Subject: [PATCH] Bug 23004: Missing authtype filter in auth_finder.pl In cataloguing, the use of tag editor opens authorities finder with a limit on specific authorities type. This limit is missing with Elasticsearch. This patch adds in query a "filter" on "term" which is the most performant way because there must be no ranking computed on this part. Test plan : 1) Use Elasticsearch 2) Create an autority of type author (NP in UNIMARC) with heading "Tolkien" 3) Create an autority of type subject-author (SAUT in UNIMARC) with heading "Tolkien" 4) Create a biblio record 5) Use tag editor on a author field (700 in UNIMARC) 6) Seach for "Tolkien" in $a without patch : you see the 2 authorities in results with patch : you see only the correct authority in results (NP in UNIMARC) 7) Check search in authorities-home.pl is still OK Signed-off-by: Kyle M Hall Signed-off-by: Tomas Cohen Arazi Signed-off-by: Martin Renvoize (cherry picked from commit 949e36c7b8a11cd185025a4c9e102f0e26205009) Signed-off-by: Fridolin Somers --- Koha/SearchEngine/Elasticsearch/QueryBuilder.pm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm b/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm index 77782ebd7f..4610fb3ee9 100644 --- a/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm +++ b/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm @@ -353,6 +353,9 @@ sub build_authorities_query { { must => \@query_parts } } }; + if ( $search->{authtypecode} ) { + $query->{query}->{bool}->{filter} = { term => { 'authtype' => lc $search->{authtypecode} } }; + } my %s; if ( exists $search->{sort} ) { -- 2.39.2