Bug 20596: Join authority queries together with OR
authorDavid Cook <dcook@prosentient.com.au>
Wed, 14 Dec 2022 04:58:41 +0000 (04:58 +0000)
committerArthur Suzuki <arthur.suzuki@biblibre.com>
Thu, 26 Jan 2023 10:45:27 +0000 (11:45 +0100)
commit41d51f5cbb9f3be0d1e4a8a4520d077b40e935a3
treef2aa680a3a5c20e70356518da60e20a174ca93a8
parenteb0f3101f8cdcf41cf062e6a93b7d594b23f9295
Bug 20596: Join authority queries together with OR

This patch joins authority queries together with OR like Elasticsearch.

To the best of the author's knowledge, this code only gets triggered
when using record matching rules, but there may be other situations
where it's used.

Authority search in cataloguing plugins use a different path, and
authority search in authority home doesn't allow multiple queries,
so they'll never trigger this OR joining of queries.

Test plan:
0. Apply patch and koha-plack --restart kohadev
1. Create a record matching rule with the following:
Matching rule code: NID
Description: NormdatenID
Match threshold: 100
Record type: Authority record
Search index: Any
Score: 101
Tag: 035
Subfields: a
Offset: 0
Length: 0
Normalization rule: None

Click "Remove this match check"

2. Stage gnd.xml (from BZ 20596 attachments)
- Choose "MARCXML" for "Format"
- Choose "Authority" for "Record type"
- Choose "NID" for "Record matching rule"
- Click "Stage for import"
3. Note the job gets to "100% Finished"
(Before this patch, it would say "0% Failed")

4. View the batch
5. Import the record
6. Repeat steps 2-4 and note that the record matching rule
worked

7. Go to http://localhost:8081/cgi-bin/koha/authorities/authorities-home.pl
8. Search for "e"
9. Note that the search works

10. Go to http://localhost:8081/cgi-bin/koha/cataloguing/addbiblio.pl?frameworkcode=
11. Click tab 6
12. Click on the tag editor next to "a Personal Name"
13. Type "e" into each box and click "Search"
14. Note that the search works

Signed-off-by: Jan Kissig <jan.kissig@th-wildau.de>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit b2a23149bdfdd27b1ccf5ec2106e92da4dbe05a4)
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
(cherry picked from commit 9a319b8169170d4ffa1cd4e3ad9b963fc3531fac)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit f4462b840214b01b8bee4bb4404d5605501d0c1f)
Signed-off-by: Arthur Suzuki <arthur.suzuki@biblibre.com>
C4/AuthoritiesMarc.pm