Bug 4397: fix scan index search results for non-latin characters

The Zoom specification defines that a ScanSet should provide a way
to retrieve terms suitable for displaying and another one for using
on further searches [1].

The Net::Z3950::ZOOM implementation actually provides both [2] but we
were using the wrong one.

Using $scanset->display_term(...) instead of $scanset->term(...) fixes
the problem.

To test:
- Do a index scan search (advanced search > more options > check
  'index scan')
- Notice non-latin characters are replaced by one or more '@' symbols.
- Apply the patch
- Re-do the search, everything shows as it should.
- Try to follow any of the terms (clicking on them) and notice that
  it actually gives you relevant results (i.e. is not searching for
   @!!!!).

[1] http://zoom.z3950.org/api/zoom-1.4.html#3.6.3
[2] http://search.cpan.org/~mirk/Net-Z3950-ZOOM/lib/ZOOM.pod#term()_/_display_term()

Sponsored-by: Universidad Nacional de Cordoba

Followed test plan. Patch behaves as expected.
Signed-off-by: Marc Véron <veron@veron.ch>

Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
I reproduced the issue and I confirm this patch fixes it.
I put "Fuß" in a title, reindex the record. Launch a search on Title
checking the "scan index" checkbox. And the non-latin characters are
well displayed.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
This commit is contained in:
Tomas Cohen Arazi 2014-02-28 15:26:10 -03:00 committed by Galen Charlton
parent c251f75240
commit 997246cf4f
1 changed files with 1 additions and 1 deletions

View File

@ -456,7 +456,7 @@ sub getRecords {
## Check if it's an index scan
if ($scan) {
my ( $term, $occ ) = $results[ $i - 1 ]->term($j);
my ( $term, $occ ) = $results[ $i - 1 ]->display_term($j);
# here we create a minimal MARC record and hand it off to the
# template just like a normal result ... perhaps not ideal, but