Uploaded image for project: 'DSpace'
  1. DSpace
  2. DS-2571

Jump to value in descending browse jumps too far



    • Attachments:
    • Comments:
    • Documentation Status:
      Not Required


      When browsing in XMLUI, jumping to a value when sort order is descending jumps "too far", skipping all partial matches. In date browse, when jumping to a specific year, it jumps to the cut-off point between year-only dates and dates with month/month+day. In title browse, when jumping to a string, it jumps to the cut-off point between partial and exact matches.

      Here's an example:

      The demo server currently has three items issued in 1990. One has dc.date.issued=1990, one dc.date.issued=1990-02-22, another dc.date.issued=1990-02-24. When browsing by issue date in descending order, the year-only item comes after the two others. That's ok, it's pretty arbitrary whether these get put at the beginning or at the end of the 1990 items. However, when selecting 1990 from the year drop-down (identical behaviour when typing in 1990), the first item shown is the year-only item. Going back to the previous page then shows the other two 1990 items.

      The behaviour is different (and as I would expect) when sorting in ascending order. The year-only item comes before the two others. When jumping to 1990, the first item shown is the year-only item, followed by the two items with month/day information.

      When there are only partial matches for a jump, descending browse skips over the matching items. On the test server, there currently is an item with title "Management of e-resources". When I jump to that full value, the item is the first returned both in ascending and descending order. When I jump to just Management, the item is the first returned in ascending order but the last on the previous page in descending order.

      From playing around with Solr queries on one of my test instances, I think the problem is that we rely on the { delimiter in range queries, but it doesn't work as expected around partial matches. It's meant to exclude the "corner" point of the range. When browsing in descending order and jumping to 1990, a Solr query is made for the date range {1990 TO *], to determine how many items to skip when jumping. However, the results for such a query do include items with 1990 as the year and month/day components.

      The range endpoints were changed in DS-2193 / DS-2176 to fix behaviour when jumping to an exact metadata value. However, it appears that the fix broke the behaviour when jumping to a partial value.




            hardyoyo Hardy Pottinger
            schweer Andrea Schweer
            0 Vote for this issue
            3 Start watching this issue