Update of /var/cvs/contributions/lucene/src/org/mmbase/module/lucene
In directory james.mmbase.org:/tmp/cvs-serv1224

Modified Files:
        Lucene.java MMBaseIndexDefinition.java 
Log Message:
LUCENE-9




See also: 
http://cvs.mmbase.org/viewcvs/contributions/lucene/src/org/mmbase/module/lucene
See also: http://www.mmbase.org/jira/browse/LUCENE-9


Index: Lucene.java
===================================================================
RCS file: 
/var/cvs/contributions/lucene/src/org/mmbase/module/lucene/Lucene.java,v
retrieving revision 1.107
retrieving revision 1.108
diff -u -b -r1.107 -r1.108
--- Lucene.java 25 Feb 2008 12:23:43 -0000      1.107
+++ Lucene.java 17 Mar 2008 08:58:20 -0000      1.108
@@ -48,7 +48,7 @@
  *
  * @author Pierre van Rooden
  * @author Michiel Meeuwissen
- * @version $Id: Lucene.java,v 1.107 2008/02/25 12:23:43 michiel Exp $
+ * @version $Id: Lucene.java,v 1.108 2008/03/17 08:58:20 andre Exp $
  **/
 public class Lucene extends ReloadableModule implements NodeEventListener, 
RelationEventListener, IdEventListener {
 
@@ -154,6 +154,8 @@
 
     private List<String> configErrors = new ArrayList<String>();
     private Date configReadTime = new Date(0);
+    /* keeps track of startnodes to not reindex them */
+    private Set startNodes = new HashSet();
 
     /**
      * Returns whether an element has a certain attribute, either an 
unqualified attribute or an attribute that fits in the
@@ -919,6 +921,18 @@
                                     id.setId(indexName + "_" + (++lists));
                                     queries.add(id);
                                     log.service("Added mmbase index definition 
" + id);
+                                    if ("list".equals(name)) {
+                                        String snodes = 
childElement.getAttribute("startnodes");
+                                        String[] sn = snodes.split(",");
+                                        if (snodes != null && 
!"".equals(snodes)) {
+                                            log.info("Found startnodes '" + 
snodes + "' of list in index: " + indexName);
+                                            for (i = 0; i < sn.length; i++) {
+                                                String snr = 
cloud.getNodeByAlias(sn[i]).getStringValue("number");
+                                                log.debug("checking for: " + 
snr);
+                                                if (!startNodes.contains(snr)) 
startNodes.add(snr);
+                                            }
+                                        }
+                                    }
                                 } else if ("jdbc".equals(name)) {
                                     DataSource ds =  
((DatabaseStorageManagerFactory) 
mmbase.getStorageManagerFactory()).getDataSource();
                                     IndexDefinition id = new 
JdbcIndexDefinition(ds, childElement,
@@ -964,7 +978,7 @@
         if (indexName == null || indexName.equals("")) indexName = 
defaultIndex;
         Searcher searcher = indexName == null ? null : 
searcherMap.get(indexName);
         if (searcher == null) {
-            throw new IllegalArgumentException("Index with name " +indexName + 
" does not exist. Existing are " + searcherMap.keySet());
+            throw new IllegalArgumentException("Index with name " + indexName 
+ " does not exist. Existing are " + searcherMap.keySet());
         }
         return searcher;
     }
@@ -972,7 +986,7 @@
 
     public void notify(NodeEvent event) {
         if (log.isDebugEnabled()) {
-            log.debug("Received node event " + event +  Logging.stackTrace(6));
+            log.debug("Received node event: " + event +  
Logging.stackTrace(6));
         }
         if (scheduler != null) {
             switch(event.getType()) {
@@ -993,17 +1007,20 @@
     }
     public void notify(RelationEvent event) {
         if (log.isDebugEnabled()) {
-            log.debug("Received relation event " + event);
+            log.debug("Received relation event: " + event + 
Logging.stackTrace(6));
         }
         if (scheduler != null) {
             switch(event.getType()) {
             case Event.TYPE_NEW:
                 //scheduler.newIndex("" + event.getRelationSourceNumber(), 
MMBaseIndexDefinition.class);
+                if (!startNodes.contains("" + 
event.getRelationDestinationNumber())) 
                 scheduler.updateIndex("" + 
event.getRelationDestinationNumber(), MMBaseIndexDefinition.class);
                 break;
             case Event.TYPE_CHANGE:
             case Event.TYPE_DELETE:
+                if (!startNodes.contains("" + 
event.getRelationSourceNumber())) 
                 scheduler.updateIndex("" + event.getRelationSourceNumber(), 
MMBaseIndexDefinition.class);
+                if (!startNodes.contains("" + 
event.getRelationDestinationNumber())) 
                 scheduler.updateIndex("" + 
event.getRelationDestinationNumber(), MMBaseIndexDefinition.class);
                 break;
             }


Index: MMBaseIndexDefinition.java
===================================================================
RCS file: 
/var/cvs/contributions/lucene/src/org/mmbase/module/lucene/MMBaseIndexDefinition.java,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -b -r1.23 -r1.24
--- MMBaseIndexDefinition.java  1 Feb 2008 11:08:21 -0000       1.23
+++ MMBaseIndexDefinition.java  17 Mar 2008 08:58:20 -0000      1.24
@@ -26,7 +26,7 @@
  * fields can have extra attributes specific to Lucene searching.
  *
  * @author Pierre van Rooden
- * @version $Id: MMBaseIndexDefinition.java,v 1.23 2008/02/01 11:08:21 michiel 
Exp $
+ * @version $Id: MMBaseIndexDefinition.java,v 1.24 2008/03/17 08:58:20 andre 
Exp $
  **/
 class MMBaseIndexDefinition extends QueryDefinition implements IndexDefinition 
{
     static private final Logger log = 
Logging.getLoggerInstance(MMBaseIndexDefinition.class);
@@ -55,12 +55,7 @@
 
     private final Map<String, Float> boosts = new HashMap<String, Float>();
 
-    private final ChainedReleaseStrategy releaseStrategy = new 
ChainedReleaseStrategy();
-    {
-        releaseStrategy.addReleaseStrategy(new BetterStrategy());
-        releaseStrategy.addReleaseStrategy(new ConstraintsMatchingStrategy());
-    }
-
+    private final BasicReleaseStrategy releaseStrategy = new 
BasicReleaseStrategy();
 
     MMBaseIndexDefinition() {
     }
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to