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);
//--------------------------------------------------------------------------
/**