From b58e2f6d549406026de50d0ecbcef6a6297f6572 Mon Sep 17 00:00:00 2001 From: pkjacob <121239864+pkjacob@users.noreply.github.com> Date: Wed, 8 Jan 2025 07:53:01 -0500 Subject: [PATCH] fix (linked-data): Use 'lccnSearchTermProcessor' in linked-data search APIs (#728) Closes: MSEARCH-935 --- NEWS.md | 1 + .../resources/model/linked_data_instance.json | 3 +- .../resources/model/linked_data_work.json | 3 +- .../SearchLinkedDataInstanceIT.java | 85 ++++++++++--------- .../controller/SearchLinkedDataWorkIT.java | 85 ++++++++++--------- .../samples/linked-data/instance.json | 4 + .../resources/samples/linked-data/work.json | 4 + 7 files changed, 99 insertions(+), 86 deletions(-) diff --git a/NEWS.md b/NEWS.md index 2d034a3a2..d9761ea0e 100644 --- a/NEWS.md +++ b/NEWS.md @@ -24,6 +24,7 @@ * Fix the "Invalid reference" appears after updating ownership ([MSEARCH-915](https://folio-org.atlassian.net/browse/MSEARCH-915)) * Update tenant_id in database during event processing ([MSEARCH-877](https://folio-org.atlassian.net/browse/MSEARCH-877)) * Fix an issue with interrupting the batch event processing due to SystemUserAuthorizationException ([MSEARCH-925](https://folio-org.atlassian.net/browse/MSEARCH-925)) +* Use 'lccnSearchTermProcessor' in linked-data search APIs ([MSEARCH-935](https://folio-org.atlassian.net/browse/MSEARCH-935)) ### Tech Dept * Recreate upload ranges each upload execution ([MSEARCH-934](https://folio-org.atlassian.net/browse/MSEARCH-934)) diff --git a/src/main/resources/model/linked_data_instance.json b/src/main/resources/model/linked_data_instance.json index 3dd0aa128..c80e972d9 100644 --- a/src/main/resources/model/linked_data_instance.json +++ b/src/main/resources/model/linked_data_instance.json @@ -190,7 +190,8 @@ "lccn": { "type": "search", "index": "standard", - "processor": "linkedDataInstanceLccnProcessor" + "processor": "linkedDataInstanceLccnProcessor", + "searchTermProcessor": "lccnSearchTermProcessor" }, "note": { "type": "search", diff --git a/src/main/resources/model/linked_data_work.json b/src/main/resources/model/linked_data_work.json index e50665922..dca8d7df4 100644 --- a/src/main/resources/model/linked_data_work.json +++ b/src/main/resources/model/linked_data_work.json @@ -183,7 +183,8 @@ "lccn": { "type": "search", "index": "standard", - "processor": "linkedDataWorkLccnProcessor" + "processor": "linkedDataWorkLccnProcessor", + "searchTermProcessor": "lccnSearchTermProcessor" }, "note": { "type": "search", diff --git a/src/test/java/org/folio/search/controller/SearchLinkedDataInstanceIT.java b/src/test/java/org/folio/search/controller/SearchLinkedDataInstanceIT.java index 69afbb0ec..9367dd0fe 100644 --- a/src/test/java/org/folio/search/controller/SearchLinkedDataInstanceIT.java +++ b/src/test/java/org/folio/search/controller/SearchLinkedDataInstanceIT.java @@ -112,48 +112,49 @@ void searchByLinkedDataInstance_parameterized_allResults(int index, String query "23, lccn any \"2023202345\"", "24, lccn any \"2023202345 XXX\"", "25, lccn all \"2023202345\"", - "26, contributor = Family", - "27, contributor == Meeting", - "28, contributor ==/string Organization", - "29, contributor any Person", - "30, contributor all Family", - "31, hub = *", - "32, hub = hubA*", - "33, hub = hubAAP1", - "34, hub == hubAAP2", - "35, hub ==/string hubAAP1", - "36, hub any \"hubAAP1 hubAAP2 XXX\"", - "37, hub all hubAAP1", - "38, note = *", - "39, note = first*", - "40, note = first instance note", - "41, note == first instance note", - "42, note ==/string first instance note", - "43, note any \"first instance note XXX\"", - "44, note all \"first instance note\"", - "45, lang = *", - "46, lang = ru*", - "47, lang = eng", - "48, lang == rus", - "49, lang ==/string eng", - "50, lang == (\"rus\" or \"eng\" or \"XXX\")", - "51, lang all rus", - "52, format = *", - "53, format = Mono*", - "54, format = monograph", - "55, format == monograph", - "56, format ==/string Monograph", - "57, format any \"Monograph XXX\"", - "58, format all Monograph", - "59, suppressFromDiscovery = false", - "60, suppressFromDiscovery == false", - "61, staffSuppress = true", - "62, staffSuppress == true", - "63, publicationDate = 2023", - "64, publicationDate == 2024", - "65, publicationDate ==/string 2023", - "66, publicationDate == (\"2023\" or \"2024\" or \"2020\")", - "67, publicationDate all 2024" + "26, lccn all \"a b24123456 \"", + "27, contributor = Family", + "28, contributor == Meeting", + "29, contributor ==/string Organization", + "30, contributor any Person", + "31, contributor all Family", + "32, hub = *", + "33, hub = hubA*", + "34, hub = hubAAP1", + "35, hub == hubAAP2", + "36, hub ==/string hubAAP1", + "37, hub any \"hubAAP1 hubAAP2 XXX\"", + "38, hub all hubAAP1", + "39, note = *", + "40, note = first*", + "41, note = first instance note", + "42, note == first instance note", + "43, note ==/string first instance note", + "44, note any \"first instance note XXX\"", + "45, note all \"first instance note\"", + "46, lang = *", + "47, lang = ru*", + "48, lang = eng", + "49, lang == rus", + "50, lang ==/string eng", + "51, lang == (\"rus\" or \"eng\" or \"XXX\")", + "52, lang all rus", + "53, format = *", + "54, format = Mono*", + "55, format = monograph", + "56, format == monograph", + "57, format ==/string Monograph", + "58, format any \"Monograph XXX\"", + "59, format all Monograph", + "60, suppressFromDiscovery = false", + "61, suppressFromDiscovery == false", + "62, staffSuppress = true", + "63, staffSuppress == true", + "64, publicationDate = 2023", + "65, publicationDate == 2024", + "66, publicationDate ==/string 2023", + "67, publicationDate == (\"2023\" or \"2024\" or \"2020\")", + "68, publicationDate all 2024" }) void searchByLinkedDataInstance_parameterized_singleResult(int index, String query) throws Throwable { doSearchByLinkedDataInstance(query) diff --git a/src/test/java/org/folio/search/controller/SearchLinkedDataWorkIT.java b/src/test/java/org/folio/search/controller/SearchLinkedDataWorkIT.java index 30c2f0857..ceaa7912a 100644 --- a/src/test/java/org/folio/search/controller/SearchLinkedDataWorkIT.java +++ b/src/test/java/org/folio/search/controller/SearchLinkedDataWorkIT.java @@ -112,48 +112,49 @@ void searchByLinkedDataWork_parameterized_allResults(int index, String query) th "23, lccn any \"2023202345\"", "24, lccn any \"2023202345 XXX\"", "25, lccn all \"2023202345\"", - "26, contributor = Family", - "27, contributor == Meeting", - "28, contributor ==/string Organization", - "29, contributor any Person", - "30, contributor all Family", - "31, hub = *", - "32, hub = hubA*", - "33, hub = hubAAP1", - "34, hub == hubAAP2", - "35, hub ==/string hubAAP1", - "36, hub any \"hubAAP1 hubAAP2 XXX\"", - "37, hub all hubAAP1", - "38, note = *", - "39, note = first*", - "40, note = first instance note", - "41, note == first instance note", - "42, note ==/string first instance note", - "43, note any \"first instance note XXX\"", - "44, note all \"first instance note\"", - "45, lang = *", - "46, lang = ru*", - "47, lang = eng", - "48, lang == rus", - "49, lang ==/string eng", - "50, lang == (\"rus\" or \"eng\" or \"XXX\")", - "51, lang all rus", - "52, format = *", - "53, format = Mono*", - "54, format = monograph", - "55, format == monograph", - "56, format ==/string Monograph", - "57, format any \"Monograph XXX\"", - "58, format all Monograph", - "59, suppressFromDiscovery = false", - "60, suppressFromDiscovery == false", - "61, staffSuppress = true", - "62, staffSuppress == true", - "63, publicationDate = 2023", - "64, publicationDate == 2024", - "65, publicationDate ==/string 2023", - "66, publicationDate == (\"2023\" or \"2024\" or \"2020\")", - "67, publicationDate all 2024" + "26, lccn all \"a b24123456 \"", + "27, contributor = Family", + "28, contributor == Meeting", + "29, contributor ==/string Organization", + "30, contributor any Person", + "31, contributor all Family", + "32, hub = *", + "33, hub = hubA*", + "34, hub = hubAAP1", + "35, hub == hubAAP2", + "36, hub ==/string hubAAP1", + "37, hub any \"hubAAP1 hubAAP2 XXX\"", + "38, hub all hubAAP1", + "39, note = *", + "40, note = first*", + "41, note = first instance note", + "42, note == first instance note", + "43, note ==/string first instance note", + "44, note any \"first instance note XXX\"", + "45, note all \"first instance note\"", + "46, lang = *", + "47, lang = ru*", + "48, lang = eng", + "49, lang == rus", + "50, lang ==/string eng", + "51, lang == (\"rus\" or \"eng\" or \"XXX\")", + "52, lang all rus", + "53, format = *", + "54, format = Mono*", + "55, format = monograph", + "56, format == monograph", + "57, format ==/string Monograph", + "58, format any \"Monograph XXX\"", + "59, format all Monograph", + "60, suppressFromDiscovery = false", + "61, suppressFromDiscovery == false", + "62, staffSuppress = true", + "63, staffSuppress == true", + "64, publicationDate = 2023", + "65, publicationDate == 2024", + "66, publicationDate ==/string 2023", + "67, publicationDate == (\"2023\" or \"2024\" or \"2020\")", + "68, publicationDate all 2024" }) void searchByLinkedDataWork_parameterized_singleResult(int index, String query) throws Throwable { doSearchByLinkedDataWork(query) diff --git a/src/test/resources/samples/linked-data/instance.json b/src/test/resources/samples/linked-data/instance.json index 2b00cce85..106bbadf1 100644 --- a/src/test/resources/samples/linked-data/instance.json +++ b/src/test/resources/samples/linked-data/instance.json @@ -35,6 +35,10 @@ { "value": " 2023202345", "type": "LCCN" + }, + { + "value": "a b24123456 ", + "type": "LCCN" } ], "notes": [ diff --git a/src/test/resources/samples/linked-data/work.json b/src/test/resources/samples/linked-data/work.json index f3aa9a2c1..35ea73f3e 100644 --- a/src/test/resources/samples/linked-data/work.json +++ b/src/test/resources/samples/linked-data/work.json @@ -107,6 +107,10 @@ { "value": " 2023202345", "type": "LCCN" + }, + { + "value": "a b24123456 ", + "type": "LCCN" } ], "notes": [