https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=43885 Bug ID: 43885 Summary: Elasticsearch: sorting on a field without a sort mapping makes the whole search fail Initiative type: --- Sponsorship --- status: 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: adolfo.rodriguez@xercode.es QA Contact: testopia@bugs.koha-community.org Target Milestone: --- QueryBuilder::_sort_field appends "__sort" to the sort field without checking that such a field exists in the index. When a field used for sorting (call number, author, title, date of acquisition, popularity...) is configured as not sortable, or is not mapped at all, Elasticsearch rejects the whole query: No mapping found for [cn-sort__sort] in order to sort on and Koha shows "You did not specify any search criteria" / "Unable to perform your search". If defaultSortField or OPACdefaultSortField points to that field, every search fails. The code was meant to handle fields without a sort mapping (sorting on their .raw version for text fields), but that branch is never reached: get_elasticsearch_mappings only records sortable fields in sort_fields, so a field that is not sortable is indistinguishable from an unknown field, and both get "__sort" appended. The existing tests did not catch it because they mock sort_fields with explicit 0 values. To reproduce: 1. Administration > Search engine configuration (Elasticsearch): set "Sortable" to No for cn-sort and save. 2. Rebuild the index so that the mapping is recreated: misc/search_tools/rebuild_elasticsearch.pl -d -b 3. Search the staff interface and sort by call number: the search fails. 4. Set OPACdefaultSortField to "call number": every OPAC search fails. -- You are receiving this mail because: You are the assignee for the bug. You are watching all bug changes.