Issue 12201

Occurrence search is returning bad data (a list of null values)

12201
Reporter: jcuadra
Assignee: mdoering
Type: Bug
Summary: Occurrence search is returning bad data (a list of null values)
Priority: Major
Resolution: Fixed
Status: Closed
Created: 2012-10-31 12:31:54.823
Updated: 2013-12-17 15:16:46.351
Resolved: 2012-11-01 11:59:35.774
        
Description: When trying to do an occurrence search through our staging portal, I get back an error. By logging the results, I can see that for a search like:
http://staging.gbif.org:8080/portal-web-dynamic/occurrence/search?taxon_key=800

the SearchResponse object returned is:

SearchResponse{count=11763, results=[null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null], facets=[], offset=0, limit=20}


This list of nulls causes the freemarker engine to throw an exception, as we are just checking for a non-empty list, and not inside null element.s
]]>
    


Author: mdoering@gbif.org
Comment: Thats a bug in the occ search then, at least an occurrence id must exist!
Created: 2012-10-31 13:46:23.428
Updated: 2012-10-31 13:46:23.428


Author: mdoering@gbif.org
Comment: maybe just an out of sync index being the cause? Still non existing occurrence ids should be excluded from the result
Created: 2012-10-31 13:48:00.278
Updated: 2012-10-31 13:48:00.278


Author: omeyn@gbif.org
Comment: Keep in mind that at the moment the underlying occurrence table ("occurrence") is empty, by accident. That shouldn't affect the search index, but, just sayin.
Created: 2012-10-31 13:48:20.589
Updated: 2012-10-31 13:48:20.589


Author: mdoering@gbif.org
Created: 2012-10-31 13:57:10.827
Updated: 2012-10-31 13:57:10.827
        
it does - the search index does not store values, so we do a lookup for every record finally in HBase.
BUT the search should exclude all those non existing records from the result instead of adding a full null instance
    


Author: mdoering@gbif.org
Comment: http://code.google.com/p/gbif-occurrencestore/source/detail?r=1712
Created: 2012-11-01 11:59:35.807
Updated: 2012-11-01 11:59:35.807


Author: jcuadra@gbif.org
Created: 2012-11-01 14:37:47.058
Updated: 2012-11-01 14:37:47.058
        
I get back
SearchResponse{count=2988, results=[], facets=[], offset=0, limit=20}

returns a count with an empty resultset. As this is a very atypical scenario (occurrence table being empty) I don't know if its worth pursuing the issue further, but still important to note.

As a result of the count not being 0, the pagination macro still thinks there are records.