Changeset 1571 for TI01-discovery/trunk


Ignore:
Timestamp:
10/10/06 09:43:39 (13 years ago)
Author:
mpritcha
Message:

Better handling of zero hit searches.

Location:
TI01-discovery/trunk/ws-Discovery2/src/ndg/services/discovery
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • TI01-discovery/trunk/ws-Discovery2/src/ndg/services/discovery/FullTextSearchAgent.java

    r1565 r1571  
    137137                        xpath.setNamespaceContext( new existNamespaceContextImpl() ); 
    138138 
    139                         result.setHits( (new Integer( xpath.evaluate(hitsExpr, resultSource) )).intValue() ); 
     139                        // If there is a successful search but with no hits, exist sets hitCount=0 rather than hits=0 !! 
     140                        // Need to check that the thing returned by xpath will convert to an int 
     141                        try 
     142                        { 
     143                                int xpathHits = (new Integer( xpath.evaluate(hitsExpr, resultSource) )).intValue(); 
     144                                result.setHits( xpathHits ); 
     145                        } 
     146                        catch (NumberFormatException e) 
     147                        { 
     148                                result.setHits( 0 ); 
     149                        } 
    140150                         
    141151                        resultStream.reset(); 
    142152                        NodeList nodeList = (NodeList)xpath.evaluate( documentExpr, resultSource, XPathConstants.NODESET );  
    143                         Vector documents = new Vector(); 
    144                         for (int i=0; i<nodeList.getLength(); i++) 
    145                         { 
    146                                 Hashtable thisDoc = new Hashtable(); 
    147                                 thisDoc.put("name", nodeList.item(i).getFirstChild().getNodeValue() ); 
    148                                 thisDoc.put("matches", 1); 
    149                                 thisDoc.put("position", i); 
    150                                 documents.add( thisDoc ); 
    151                         } 
    152                         result.setDocuments( documents );        
    153                         result.setStatus( true ); 
     153                         
     154                        if ( result.getHits() > 0) 
     155                        { 
     156                                Vector documents = new Vector(); 
     157                                for (int i=0; i<nodeList.getLength(); i++) 
     158                                { 
     159                                        Hashtable thisDoc = new Hashtable(); 
     160                                        thisDoc.put("name", nodeList.item(i).getFirstChild().getNodeValue() ); 
     161                                        thisDoc.put("matches", 1); 
     162                                        thisDoc.put("position", i); 
     163                                        documents.add( thisDoc ); 
     164                                } 
     165                                result.setStatus( true ); 
     166                                result.setDocuments( documents );        
     167                        } 
     168                        else 
     169                        { 
     170                                result.setStatus( false ); 
     171                                result.setStatusMessage("Search was successful but generated no results."); 
     172                        } 
     173                         
     174                         
    154175 
    155176                } 
  • TI01-discovery/trunk/ws-Discovery2/src/ndg/services/discovery/SearchAgent.java

    r1567 r1571  
    2727 
    2828        // Input parameters 
    29         int resultId; 
     29        int resultId = 0; 
    3030        int start = startDefault; 
    3131        int howMany = howManyDefault; 
Note: See TracChangeset for help on using the changeset viewer.