Changeset 7773 for RevitalizationWS


Ignore:
Timestamp:
09/12/10 17:19:22 (9 years ago)
Author:
mnagni
Message:

Fixed the "exact phrase" search

Location:
RevitalizationWS/ws/DiscoveryService/trunk/src/main/java/ndg/services/discovery/model
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • RevitalizationWS/ws/DiscoveryService/trunk/src/main/java/ndg/services/discovery/model/CommonMethods.java

    r7332 r7773  
    132132                StringBuffer orderSQL = new StringBuffer(); 
    133133                 
    134  
     134                whereSQL.append("transformed_document.original_document_id = original_document.original_document_id");   
     135                 
    135136                fromSQL.append(" FROM "); 
    136137                fromSQL.append(DiscoveryDictionary.ORIGINAL_DOCUMENT_TABLE); 
     138                fromSQL.append(", " + DiscoveryDictionary.TRANSFORMED_DOCUMENT_TABLE);           
    137139 
    138140                assembleSearchQuery(selectSQL, fromSQL, whereSQL,criteria, retrieveType); 
  • RevitalizationWS/ws/DiscoveryService/trunk/src/main/java/ndg/services/discovery/model/PresentAgent.java

    r7654 r7773  
    129129                selectSQL.append(DiscoveryDictionary.FULL_DOCUMENT); 
    130130                 
    131                 checkFROMComma(fromSQL, false); 
    132                 fromSQL.append(DiscoveryDictionary.TRANSFORMED_DOCUMENT_TABLE); 
     131                //checkFROMComma(fromSQL, false); 
     132                //fromSQL.append(DiscoveryDictionary.TRANSFORMED_DOCUMENT_TABLE); 
    133133                 
    134134                checkWHERE_AND(whereSQL, false); 
  • RevitalizationWS/ws/DiscoveryService/trunk/src/main/java/ndg/services/discovery/model/SearchAgent.java

    r7631 r7773  
    186186                boolean secondPass = false; 
    187187                int queryIndex = 0; 
     188                TermParser parser = new TermParser(); 
     189                String[] phrases = null;                 
    188190                for (TermSearchType termType : terms) { 
    189191                        String term = termType.getTerm(); 
     
    192194                        if (term == null || term.length() == 0) 
    193195                                continue; 
    194                         term = new TermParser().parseTerm(term); 
     196                         
     197                        //DO NOT INVERT!! 
     198                        phrases = parser.extractWordPhrase(term); 
     199                        term = parser.parseTerm(term);   
    195200 
    196201                        DiscoveryDictionary.TermTarget termTarget = DiscoveryDictionary.getTermType(termType.getTermTarget()); 
     
    206211                        String operator = getOperator(termType.getOperator()); 
    207212 
     213                        if (queryIndex == 0) 
     214                                checkWHERE_AND(whereSQL, secondPass);                    
     215                         
    208216                        if ((!secondPass && operator.equals(OPERATOR.NOT.name())) || (secondPass && queryIndex < terms.size())) { 
    209217                                whereSQL.append(" "); 
     
    215223                        whereSQL.append(composeVector(termTarget)); 
    216224 
     225                        if (phrases != null && phrases[0].trim().length() > 0) { 
     226                                for (String phrase : phrases) { 
     227                                        if (phrase.indexOf(" ") > 0) { 
     228                                                checkWHERE_AND(whereSQL, secondPass); 
     229                                                whereSQL.append("transformed_document.transformed_document ilike '%" + phrase.replaceAll("'", "") + "%'");       
     230                                        }                                        
     231                                } 
     232                        }                        
     233                         
    217234                        secondPass = true; 
    218235                        queryIndex++; 
Note: See TracChangeset for help on using the changeset viewer.