Changeset 5677 for TI01-discovery


Ignore:
Timestamp:
02/09/09 10:41:06 (10 years ago)
Author:
sdonegan
Message:

Explicitly sets orderByField to textRelevance if no orderByfield specified in original SOAP.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • TI01-discovery/branches/ws-Discovery2-MSI/discoveryUpgrade/src/ndg/services/discovery/SearchAgent.java

    r5566 r5677  
    3535 
    3636        private String orderByField = null; // representation used in WSDL e.g. 
    37                                                                                 // "date", "dataCentre" 
     37                                                                                // "date", "dataCentre"   
    3838 
    3939        private String orderByDirection = "ASC"; // default orderBy direction 
     
    474474                logger.info("Creating search query"); 
    475475                logger.info("search term detected is: " + this.term); 
     476                 
     477                //check if orderByField is specified 
    476478 
    477479                // NB, we use the postgres text search function to do term searches 
     
    502504                                } 
    503505                        } 
    504  
     506                         
    505507                        // NB, historically, limited wildcard searches were possible with 
    506508                        // eXist 
     
    510512                        if (isPOSIXWildcardSeach()) { 
    511513                                convertWildcardTerm(); 
     514                                 
    512515                                // since author + param data is stored as vectors, requires a 
    513516                                // slight fudge to convert to a searchable string 
     
    522525 
    523526                        } else { 
     527                                 
    524528                                // if spaces are specified, these need to be turned into '&' 
    525529                                // joins 
     
    530534                                appendWhereClause(whereSqlCmd, "query @@ COALESCE(" 
    531535                                                + termColumn + ", '') "); 
    532                         } 
    533                 } 
     536                                 
     537                                 
     538                        } 
     539                } 
     540                 
     541                 
    534542 
    535543                if (this.getScopes() != null && this.getScopes().size() > 0) { 
     
    538546                                        + this.getScopesAsString() + "') @@ scope_ts_vector "); 
    539547                } 
    540  
     548                 
    541549                // Construct the search clause for spatio temporal search, if necessary 
    542550                String bbox = null; 
     
    545553                 
    546554                 
     555                //must define a default field to order by here if none specified in SOAP request 
     556                if (this.getOrderByField() == null){ 
     557                        this.setOrderByField("textRelevance");                   
     558                } 
     559                 
    547560                //Must catch whether ordering by proximity here, and no spatial search specified on DDS front end. 
    548561                //||             
    549                 //(  (!isSpatialSearch()) && (this.getOrderByField().equals(DiscoveryServiceSkeleton.PROXIMITY_ORDER)))  
     562                //(  (!isSpatialSearch()) && (this.getOrderByField().equals(DiscoveryServiceSkeleton.PROXIMITY_ORDER)))                  
    550563                if (isSpatialSearch(this.getOrderByField().equals(DiscoveryServiceSkeleton.PROXIMITY_ORDER))){ 
    551564                         
     
    602615                         
    603616                } 
    604  
     617                 
    605618                if (isTemporalSearch()) { 
    606619                        logger.info("Adding temporal data to query"); 
Note: See TracChangeset for help on using the changeset viewer.