knguyen     2005/04/08 14:52:20 CEST

  Modified files:
    core/src/java/org/jahia/services/search 
                                            CacheableDocumentProxy.java 
                                            ContainerSearcher.java 
                                            JahiaFieldIndexableDocument.java 
                                            PageSearchResultBuilderImpl.java 
  Log:
  - fix pdf and charset parsing
  - lowering page title boost score ( can be customized ) for better display of 
search result
  
  Revision  Changes    Path
  1.2       +1 -1      
jahia/core/src/java/org/jahia/services/search/CacheableDocumentProxy.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/search/CacheableDocumentProxy.java.diff?r1=1.1&r2=1.2&f=h
  1.5       +1 -1      
jahia/core/src/java/org/jahia/services/search/ContainerSearcher.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/search/ContainerSearcher.java.diff?r1=1.4&r2=1.5&f=h
  1.2       +4 -1      
jahia/core/src/java/org/jahia/services/search/JahiaFieldIndexableDocument.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/search/JahiaFieldIndexableDocument.java.diff?r1=1.1&r2=1.2&f=h
  1.3       +68 -11    
jahia/core/src/java/org/jahia/services/search/PageSearchResultBuilderImpl.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/search/PageSearchResultBuilderImpl.java.diff?r1=1.2&r2=1.3&f=h
  
  
  
  Index: CacheableDocumentProxy.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/services/search/CacheableDocumentProxy.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- CacheableDocumentProxy.java       28 Feb 2005 16:10:19 -0000      1.1
  +++ CacheableDocumentProxy.java       8 Apr 2005 12:52:19 -0000       1.2
  @@ -39,7 +39,7 @@
       public Object invoke(Object proxy, Method m, Object[] args)
       throws Throwable
       {
  -        Object result;
  +        Object result;                  
           try {
               result = m.invoke(obj, args);
           } catch (InvocationTargetException e) {
  
  
  
  Index: ContainerSearcher.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/services/search/ContainerSearcher.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- ContainerSearcher.java    3 Mar 2005 12:27:00 -0000       1.4
  +++ ContainerSearcher.java    8 Apr 2005 12:52:19 -0000       1.5
  @@ -145,7 +145,7 @@
        * @param siteId
        * @param containerDefinitionName
        * @param query
  -     * @param loadRequest
  +     * @param loadRequest                                                   
        */
       public ContainerSearcher (int siteId, String containerDefinitionName,
                                 String query, EntryLoadRequest loadRequest) {
  
  
  
  Index: JahiaFieldIndexableDocument.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/services/search/JahiaFieldIndexableDocument.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- JahiaFieldIndexableDocument.java  28 Feb 2005 16:10:19 -0000      1.1
  +++ JahiaFieldIndexableDocument.java  8 Apr 2005 12:52:19 -0000       1.2
  @@ -30,6 +30,7 @@
   import org.jahia.bin.JahiaAdministration;
   import org.jahia.params.ParamBean;
   import org.jahia.params.SerializableParamBean;
  +import org.apache.lucene.document.DateField;
   
   /**
    *
  @@ -256,7 +257,7 @@
                                   }
                                   extDoc = 
ServicesRegistry.getInstance().getFileExtractionService()
                                       
.getExtractedDocument(contentType,file.getPath(),lastModifiedDate,
  -                                            true,file.downloadFile());
  +                                            
true,file.downloadFile(),charSet);
                                   if ( extDoc != null ){
                                       strVal = extDoc.getContentAsString();
                                   }
  @@ -264,8 +265,10 @@
                                   logger.debug(t);
                               }
                           }
  +                        strVal += " " + file.getName();
                       }
                   }
  +
                   if (strVal != null) {
                       
this.setFieldValue(JahiaSearchConstant.FIELD_VALUE,strVal);
                       
this.getField(JahiaSearchConstant.FIELD_VALUE).setType(DocumentField.UNSTORED_TEXT);
  
  
  
  Index: PageSearchResultBuilderImpl.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/services/search/PageSearchResultBuilderImpl.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- PageSearchResultBuilderImpl.java  3 Mar 2005 12:27:00 -0000       1.2
  +++ PageSearchResultBuilderImpl.java  8 Apr 2005 12:52:19 -0000       1.3
  @@ -50,10 +50,18 @@
   
       private boolean oneHitByPage = false;
   
  +    private float directLinkBootFactor = 0.1f;
  +    private float directPageBootFactor = 0.3f;
  +    private float externalLinkBootFactor = 0.3f;
  +
       private GroupingHitsHandler groupingHitsHandler = new 
GroupingHitsHandler();
       
       public PageSearchResultBuilderImpl(){}
   
  +    public PageSearchResultBuilderImpl(boolean oneHitByPage){
  +        this.oneHitByPage = oneHitByPage;
  +    }
  +
       public boolean getOneHitByPage() {
           return oneHitByPage;
       }
  @@ -62,8 +70,28 @@
           this.oneHitByPage = oneHitByPage;
       }
   
  -    public PageSearchResultBuilderImpl(boolean oneHitByPage){
  -        this.oneHitByPage = oneHitByPage;
  +    public float getDirectLinkBootFactor() {
  +        return directLinkBootFactor;
  +    }
  +
  +    public void setDirectLinkBootFactor(float directLinkBootFactor) {
  +        this.directLinkBootFactor = directLinkBootFactor;
  +    }
  +
  +    public float getDirectPageBootFactor() {
  +        return directPageBootFactor;
  +    }
  +
  +    public void setDirectPageBootFactor(float directPageBootFactor) {
  +        this.directPageBootFactor = directPageBootFactor;
  +    }
  +
  +    public float getExternalLinkBootFactor() {
  +        return externalLinkBootFactor;
  +    }
  +
  +    public void setExternalLinkBootFactor(float externalLinkBootFactor) {
  +        this.externalLinkBootFactor = externalLinkBootFactor;
       }
   
       /**
  @@ -130,9 +158,29 @@
                                  }
                              }
                          }
  -
  -                       aPage = sReg.getJahiaPageService ()
  -                               .lookupPage (Integer.parseInt (pageIDVal), 
jParams);
  +                       aPage = null;
  +                       int pageId = 0;
  +                       try {
  +                           pageId = Integer.parseInt (pageIDVal);
  +                           if ( contentField.getType() != FieldTypes.PAGE ) {
  +                                // use the parent page of the field
  +                                aPage = sReg.getJahiaPageService ()
  +                                    .lookupPage (pageId, jParams);
  +                           } else {
  +                               pageId = Integer.parseInt 
(contentField.getValue(jParams));
  +                               // use the target page of the field
  +                               aPage = sReg.getJahiaPageService ()
  +                                   .lookupPage (pageId,jParams);
  +                               if ( aPage.getPageType() != 
JahiaPage.TYPE_DIRECT ) {
  +                                   // its an url, use the parent page to 
display the link
  +                                   pageId = Integer.parseInt (pageIDVal);
  +                                   aPage = sReg.getJahiaPageService ()
  +                                       .lookupPage (pageId, jParams);
  +                               }
  +                           }
  +                       } catch ( Throwable t) {
  +                           logger.debug("Page not found pageId=" + pageId);
  +                       }
   
                          // security check over the field and the 
corresponding page
                          JahiaBaseACL acl = new JahiaBaseACL 
(contentField.getAclID ());
  @@ -201,9 +249,11 @@
                                      }
                                  }
                                  
info.setId(String.valueOf(contentField.getID()));
  -                               info.setPageId(contentField.getPageID());
  +                               info.setPageId(aPage.getID());
                                  info.setPage(aPage);
   
  +                               float scoreFactor = 1.0f;
  +
                                  aField =  sReg.getJahiaFieldService 
().loadField (
                                                  Integer.parseInt 
(fieldIDVal), jParams);
   
  @@ -215,10 +265,15 @@
                                          if (fieldPage != null) {
                                              value = fieldPage.getTitle ();
                                              try {
  -                                               if (fieldPage.getPageType () 
== JahiaPage.TYPE_DIRECT) {
  -                                                   url = fieldPage.getURL 
(jParams);
  -                                               } else if 
(fieldPage.getPageType () == JahiaPage.TYPE_URL) {
  +                                               if (fieldPage.getPageType () 
== JahiaPage.TYPE_URL) {
  +                                                   scoreFactor = 
this.getExternalLinkBootFactor();
                                                      url = 
fieldPage.getRemoteURL();
  +                                               } else if 
(fieldPage.getPageType () == JahiaPage.TYPE_DIRECT) {
  +                                                    scoreFactor = 
this.getDirectPageBootFactor();
  +                                                    url = 
fieldPage.getURL(jParams);
  +                                               } else {
  +                                                   scoreFactor = 
this.getDirectLinkBootFactor();
  +                                                   url = 
aPage.getURL(jParams);
                                                  }
                                              } catch ( Throwable t ){
                                              }
  @@ -272,7 +327,7 @@
                                  }
                                  result.addHit (info);
                                  List hitScoreList = new ArrayList();
  -                               hitScoreList.add(new 
Float(parsedObject.getScore()));
  +                               hitScoreList.add(new 
Float(parsedObject.getScore() * scoreFactor));
                                  hitScores.put(new 
Integer(result.getHitCount()),hitScoreList);
                                  pagecount++;
                              }
  @@ -298,7 +353,9 @@
                          score = (Float) iterator.next();
                          f += score.floatValue();
                      }
  -                   searchHit.setScore((new Float((f * 100) / 
hitScoreList.size())).intValue());
  +                   searchHit.setScore((new Float(((f * 100)) / 
hitScoreList.size())).intValue());
  +                   //f += hitScoreList.size() * 1;
  +                   //searchHit.setScore((new Float(((f * 100)) / 
(hitScoreList.size() * 2))).intValue());
                  }
              }
           }
  

Reply via email to