knguyen     2004/10/01 17:59:40 CEST

  Modified files:        (Branch: JAHIA-4-0-BRANCH)
    src/java/org/jahia/services/search JahiaSearchBaseService.java 
                                       JahiaSearchResultHandlerImpl.java 
                                       JahiaSearchService.java 
  Log:
  - search engine : re-index Active value only at activation, else just  re-index 
Staging value for other update operations
  
  Revision   Changes    Path
  1.42.2.13  +18 -11    
jahia/src/java/org/jahia/services/search/JahiaSearchBaseService.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/src/java/org/jahia/services/search/JahiaSearchBaseService.java.diff?r1=1.42.2.12&r2=1.42.2.13&f=h
  1.2.2.1    +24 -8     
jahia/src/java/org/jahia/services/search/JahiaSearchResultHandlerImpl.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/src/java/org/jahia/services/search/JahiaSearchResultHandlerImpl.java.diff?r1=1.2&r2=1.2.2.1&f=h
  1.10.4.2   +7 -7      
jahia/src/java/org/jahia/services/search/JahiaSearchService.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/src/java/org/jahia/services/search/JahiaSearchService.java.diff?r1=1.10.4.1&r2=1.10.4.2&f=h
  
  
  
  Index: JahiaSearchBaseService.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/src/java/org/jahia/services/search/Attic/JahiaSearchBaseService.java,v
  retrieving revision 1.42.2.12
  retrieving revision 1.42.2.13
  diff -u -r1.42.2.12 -r1.42.2.13
  --- JahiaSearchBaseService.java       30 Sep 2004 13:13:27 -0000      1.42.2.12
  +++ JahiaSearchBaseService.java       1 Oct 2004 15:59:40 -0000       1.42.2.13
  @@ -397,12 +397,13 @@
       /**
        * Re-index a field.
        *
  -     * @param fieldID
  -     * @param jParams
  -     *
  -     * @return boolean false on error.
  -     */
  -    public synchronized void indexField (int fieldID, ParamBean jParams) {
  +     * @param fieldID int
  +     * @param stagingOnly boolean, if false, skip re-index active version
  +     * @param jParams ParamBean
  +     */
  +    public synchronized void indexField (int fieldID,
  +                                         boolean stagingOnly,
  +                                         ParamBean jParams) {
   
           ServicesRegistry sReg = ServicesRegistry.getInstance ();
   
  @@ -432,10 +433,17 @@
               JahiaField aField = null;
               while (enum.hasMoreElements ()) {
                   aField = (JahiaField) enum.nextElement ();
  -                if (aField.getVersionID () !=
  -                        EntryLoadRequest.DELETED_WORKFLOW_STATE) {
  -                    this.addFieldToSearchEngine (aField, aField.getWorkflowState 
());
  +                if ( stagingOnly && aField.getWorkflowState()
  +                     == EntryLoadRequest.ACTIVE_WORKFLOW_STATE ){
  +                    continue;
                   }
  +                /*
  +                if ( aField.getVersionID()
  +                     == EntryLoadRequest.DELETED_WORKFLOW_STATE ){
  +                    continue;
  +                }*/
  +
  +                this.addFieldToSearchEngine (aField, aField.getWorkflowState ());
               }
           } catch (Throwable t) {
               t.printStackTrace ();
  @@ -1055,8 +1063,7 @@
               }
   
               startTime = System.currentTimeMillis();
  -
  -            writer.addDocument (doc);
  +            writer.addDocument(doc);
   
               elapsedTime = System.currentTimeMillis() - startTime;
               if (logger.isInfoEnabled()) {
  
  
  
  Index: JahiaSearchResultHandlerImpl.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/src/java/org/jahia/services/search/Attic/JahiaSearchResultHandlerImpl.java,v
  retrieving revision 1.2
  retrieving revision 1.2.2.1
  diff -u -r1.2 -r1.2.2.1
  --- JahiaSearchResultHandlerImpl.java 9 Mar 2004 13:48:20 -0000       1.2
  +++ JahiaSearchResultHandlerImpl.java 1 Oct 2004 15:59:40 -0000       1.2.2.1
  @@ -110,16 +110,14 @@
                  languageCodeVal = 
parsedObject.getValue(JahiaSearchConstant.FIELD_LANGUAGE_CODE);
                  workflowStateVal = 
parsedObject.getValue(JahiaSearchConstant.FIELD_WORKFLOW_STATE);
                  if (fieldIDVal != null) {
  -                   aField =
  -                           sReg.getJahiaFieldService ().loadField (
  -                                   Integer.parseInt (fieldIDVal), jParams);
                      contentField = ContentField.getField (Integer.parseInt 
(fieldIDVal));
   
                      boolean processField
  -                           = (jParams.getEntryLoadRequest ().isCurrent ()
  +                           = ( jParams.getEntryLoadRequest ().isCurrent ()
                              || (Integer.parseInt (workflowStateVal) == 
EntryLoadRequest.STAGING_WORKFLOW_STATE)
  -                           || (Integer.parseInt (workflowStateVal) == 
EntryLoadRequest.ACTIVE_WORKFLOW_STATE
  -                           && !contentField.hasStagingEntry (languageCodeVal)));
  +                           || ((Integer.parseInt (workflowStateVal) == 
EntryLoadRequest.ACTIVE_WORKFLOW_STATE
  +                           && !contentField.hasStagingEntryIgnoreCase 
(languageCodeVal)
  +                           && !contentField.isMarkedForDelete())) );
                      if (processField) {
                          pageIDVal = 
parsedObject.getValue(JahiaSearchConstant.FIELD_PAGEID);
                          aPage = sReg.getJahiaPageService ()
  @@ -184,6 +182,9 @@
                                  
//-----------------------------------------------------------
   
                                  info.pageID = aPage.getID ();
  +                               aField =
  +                                       sReg.getJahiaFieldService ().loadField (
  +                                               Integer.parseInt (fieldIDVal), 
jParams);
   
                                  String value = "";
                                  if (aField != null) {
  @@ -284,6 +285,8 @@
          boolean found = false;
   
          ParsedObject parsedObject = null;
  +       String languageCodeVal = null;
  +       String workflowStateVal = null;
   
          Iterator iterator = parsedObjects.iterator();
          while ( iterator.hasNext() ){
  @@ -291,9 +294,22 @@
                  parsedObject = (ParsedObject)iterator.next();
                  Hashtable fields = parsedObject.getFields();
                  fieldIDVal = 
parsedObject.getValue(JahiaSearchConstant.FIELD_FIELDID);
  +               languageCodeVal = 
parsedObject.getValue(JahiaSearchConstant.FIELD_LANGUAGE_CODE);
  +               workflowStateVal = 
parsedObject.getValue(JahiaSearchConstant.FIELD_WORKFLOW_STATE);
  +
                  if (fieldIDVal != null) {
  -                   aField = sReg.getJahiaFieldService ()
  -                           .loadField (Integer.parseInt (fieldIDVal), jParams);
  +                   ContentField contentField = ContentField.getField 
(Integer.parseInt (fieldIDVal));
  +                   boolean processField
  +                           = ( jParams.getEntryLoadRequest ().isCurrent ()
  +                           || (Integer.parseInt (workflowStateVal) == 
EntryLoadRequest.STAGING_WORKFLOW_STATE)
  +                           || ((Integer.parseInt (workflowStateVal) == 
EntryLoadRequest.ACTIVE_WORKFLOW_STATE
  +                           && !contentField.hasStagingEntryIgnoreCase 
(languageCodeVal)
  +                           && !contentField.isMarkedForDelete())) );
  +                   if (processField) {
  +                       aField =
  +                               sReg.getJahiaFieldService ().loadField (
  +                                       Integer.parseInt (fieldIDVal), jParams);
  +                   }
                  }
              } catch (Throwable t) {
                  //
  
  
  
  Index: JahiaSearchService.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/src/java/org/jahia/services/search/Attic/JahiaSearchService.java,v
  retrieving revision 1.10.4.1
  retrieving revision 1.10.4.2
  diff -u -r1.10.4.1 -r1.10.4.2
  --- JahiaSearchService.java   23 Sep 2004 16:26:47 -0000      1.10.4.1
  +++ JahiaSearchService.java   1 Oct 2004 15:59:40 -0000       1.10.4.2
  @@ -108,13 +108,13 @@
       /**
        * Re-index a field.
        *
  -     * @param fieldID
  -     * @param jParams
  -     *
  -     * @return boolean false on error.
  -     */
  -    public abstract void indexField (int fieldID, ParamBean jParams)
  -            throws JahiaException;
  +     * @param fieldID int
  +     * @param stagingOnly boolean, if false, skip re-index active version
  +     * @param jParams ParamBean
  +     */
  +    public abstract void indexField (int fieldID,
  +                                     boolean stagingOnly,
  +                                     ParamBean jParams);
   
       //--------------------------------------------------------------------------
       /**
  

Reply via email to