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