https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39079 Bug ID: 39079 Summary: Matchpoints with multiple fields require all fields to match under Elasticsearch Change sponsored?: --- Product: Koha Version: Main Hardware: All OS: All Status: NEW Severity: normal Priority: P5 - low Component: Searching - Elasticsearch Assignee: koha-bugs@lists.koha-community.org Reporter: nick@bywatersolutions.com QA Contact: testopia@bugs.koha-community.org In zebra when matching an incoming file to existing records, we use 'OR' to combine the fields In elasticsearch we are combining multiple fields with 'AND' as a 'must' search This means an incoming record with two control numbers will not match an existing record with only one The generated queries are like: 2025-02-10T14:59:07 zebrasrv(46) [request] Search authorities OK 0 1 1+0 RPN @attrset Bib-1 @or @attr 1=Local-Number @attr 4=109 @attr 7=1 0 @or @or @attr 6=3 @attr 5=100 @attr 4=1 @attr 1=other-control-number (DE-588)4179998-7 @attr 6=3 @attr 5=100 @attr 4=1 @attr 1=other-control-number (DE-627)104628669 @attr 6=3 @attr 5=100 @attr 4=1 @attr 1=other-control-number (DE-576)209995106 versus 'bool' => { 'must' => [ { 'term' => { 'other-control-number.ci_raw' => '(DE-588)4179998-7' } }, { 'term' => { 'other-control-number.ci_raw' => '(DE-627)104628669' } }, { 'term' => { 'other-control-number.ci_raw' => '(DE-576)209995106' } } ] } } This is due to this bit of code: ElasticSearch/QueryBuilder: 469 # Merge the query parts appropriately 470 # 'should' behaves like 'or' 471 # 'must' behaves like 'and' 472 # Zebra behaviour seem to match must so using that here 473 my $elastic_query = {}; 474 $elastic_query->{bool}->{must} = \@query_parts; We need to respect the and_or passed into build_auth_query_compat, but currently: 514 =item and_or 515 516 Totally ignored. It is never used in L<C4::AuthoritiesMarc::SearchAuthorities>. -- You are receiving this mail because: You are the assignee for the bug. You are watching all bug changes.