From e50312c173e2c2bf5d90e38041712f6d823b6f32 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 --- 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 084d5ad3db..cb22cd46d9 100644 --- a/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm +++ b/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm @@ -352,6 +352,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.17.1