Summary: | 'whole_record' and 'weighted_fields' not passed around | ||
---|---|---|---|
Product: | Koha | Reporter: | Tomás Cohen Arazi (tcohen) <tomascohen> |
Component: | Searching - Elasticsearch | Assignee: | Tomás Cohen Arazi (tcohen) <tomascohen> |
Status: | Needs Signoff --- | QA Contact: | Testopia <testopia> |
Severity: | major | ||
Priority: | P5 - low | CC: | nick, tomascohen |
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
GIT URL: | Change sponsored?: | --- | |
Patch complexity: | Trivial patch | Documentation contact: | |
Documentation submission: | Text to go in the release notes: | ||
Version(s) released in: | Circulation function: | ||
Bug Depends on: | |||
Bug Blocks: | 40968 | ||
Attachments: |
Bug 40966: Make sure 'whole_record' and 'weighted_fields' are passed around
Bug 40966: Regression tests Bug 40966: Make sure 'whole_record' and 'weighted_fields' are passed around |
Description
Tomás Cohen Arazi (tcohen)
2025-10-07 14:26:40 UTC
Created attachment 187529 [details] [review] Bug 40966: Make sure 'whole_record' and 'weighted_fields' are passed around The ES query builder correctly handles this parameters (passed from search.pl and opac-search.pl) when it builds the ES query. But the returned 'query_cgi' that is used later for keeping the search results query context for building things like facets, just doesn't pass this values around, leading to a loss of them on the generated links. This patch makes sure they are passed around. To test: 1. Set ElasticsearchMARCFormat="Searchable array" 2. Reindex all the things: $ ktd --shell k$ koha-elasticsearch --rebuild -d -v kohadev 3. Go to advanced search, using the 'More options' option. 4. Check 'Search entire MARC record' and 'Apply weights to search' 5. Perform a search on 'FULL TEXT' => SUCCESS: The URL contains `whole_record=on` and `weighted_fields=on` 6. Hover on any facet and look at the link => FAIL: It doesn't contain them! 7. Apply this patch 8. Restart all k$ restart_all 9. Refresh the search results 10. Repeat 6 => SUCCESS: Links have the needed parameters! 11. Sign off :-D Created attachment 187531 [details] [review] Bug 40966: Regression tests Tests verify that whole_record and weighted_fields parameters are correctly included in the query_cgi string returned by build_query_compat(), ensuring these parameters are preserved in facet links and pagination. To test: 1. Apply this patch 2. Run: $ ktd --shell k$ prove t/db_dependent/Koha/SearchEngine/Elasticsearch/QueryBuilder.t => FAIL: The values are not being passed around Created attachment 187532 [details] [review] Bug 40966: Make sure 'whole_record' and 'weighted_fields' are passed around The ES query builder correctly handles this parameters (passed from search.pl and opac-search.pl) when it builds the ES query. But the returned 'query_cgi' that is used later for keeping the search results query context for building things like facets, just doesn't pass this values around, leading to a loss of them on the generated links. This patch makes sure they are passed around. To test: 1. Apply the regression tests 2. Run: $ ktd --shell k$ prove t/db_dependent/Koha/SearchEngine/Elasticsearch/QueryBuilder.t => FAIL: Tests fail! These params are not passed around! 3. Set ElasticsearchMARCFormat="Searchable array" 4. Reindex all the things: k$ koha-elasticsearch --rebuild -d -v kohadev 5. Go to advanced search, using the 'More options' option. 6. Check 'Search entire MARC record' and 'Apply weights to search' 7. Perform a search on 'FULL TEXT' => SUCCESS: The URL contains `whole_record=on` and `weighted_fields=on` 8. Hover on any facet and look at the link => FAIL: It doesn't contain them! 9. Apply this patch 10. Restart all k$ restart_all 11. Refresh the search results 12. Repeat 6 => SUCCESS: Links have the needed parameters! 13. Repeat 2 => SUCCESS: Tests pass! the parameters are passed around! 14. Sign off :-D |