Update of /var/cvs/contributions/lucene/src/org/mmbase/module/lucene
In directory james.mmbase.org:/tmp/cvs-serv6094/src/org/mmbase/module/lucene
Modified Files:
Indexer.java Lucene.java MMBaseIndexDefinition.java
Log Message:
made release-strategies configurable
See also:
http://cvs.mmbase.org/viewcvs/contributions/lucene/src/org/mmbase/module/lucene
Index: Indexer.java
===================================================================
RCS file:
/var/cvs/contributions/lucene/src/org/mmbase/module/lucene/Indexer.java,v
retrieving revision 1.57
retrieving revision 1.58
diff -u -b -r1.57 -r1.58
--- Indexer.java 25 Feb 2008 14:10:01 -0000 1.57
+++ Indexer.java 19 Mar 2008 16:25:22 -0000 1.58
@@ -34,7 +34,7 @@
*
* @author Pierre van Rooden
* @author Michiel Meeuwissen
- * @version $Id: Indexer.java,v 1.57 2008/02/25 14:10:01 michiel Exp $
+ * @version $Id: Indexer.java,v 1.58 2008/03/19 16:25:22 michiel Exp $
**/
public class Indexer {
@@ -487,11 +487,12 @@
log.debug("Indexed " + indexed + " documents");
}
}
- index(entry, document);
if (Thread.currentThread().isInterrupted()) {
- log.info("Interrupted");
+ log.service("Interrupted");
break;
}
+ index(entry, document);
+
lastIdentifier = newIdentifier;
}
if (document != null) {
Index: Lucene.java
===================================================================
RCS file:
/var/cvs/contributions/lucene/src/org/mmbase/module/lucene/Lucene.java,v
retrieving revision 1.108
retrieving revision 1.109
diff -u -b -r1.108 -r1.109
--- Lucene.java 17 Mar 2008 08:58:20 -0000 1.108
+++ Lucene.java 19 Mar 2008 16:25:22 -0000 1.109
@@ -19,7 +19,7 @@
import org.mmbase.bridge.*;
import org.mmbase.bridge.util.Queries;
import org.mmbase.storage.search.*;
-import org.mmbase.cache.CachePolicy;
+import org.mmbase.cache.*;
import org.mmbase.module.ReloadableModule;
import org.mmbase.core.event.*;
@@ -48,7 +48,7 @@
*
* @author Pierre van Rooden
* @author Michiel Meeuwissen
- * @version $Id: Lucene.java,v 1.108 2008/03/17 08:58:20 andre Exp $
+ * @version $Id: Lucene.java,v 1.109 2008/03/19 16:25:22 michiel Exp $
**/
public class Lucene extends ReloadableModule implements NodeEventListener,
RelationEventListener, IdEventListener {
@@ -154,8 +154,13 @@
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();
+ /**
+ * keeps track of startnodes to not reindex them
+ * @todo If a startnode changes itself you _might_ want to reindex.
+ */
+ private Set<String> startNodes = new HashSet<String>();
+
+ private ChainedReleaseStrategy defaultStrategy = new
ChainedReleaseStrategy();
/**
* Returns whether an element has a certain attribute, either an
unqualified attribute or an attribute that fits in the
@@ -805,6 +810,17 @@
// do not cache these queries
queryDefinition.query.setCachePolicy(CachePolicy.NEVER);
+ queryDefinition.getReleaseStrategy().removeAllStrategies();
+
queryDefinition.getReleaseStrategy().fillFromXml(queryElement.getOwnerDocument().getDocumentElement());
+ if (queryDefinition.getReleaseStrategy().size() == 0) {
+ Iterator i = defaultStrategy.iterator();
+ while (i.hasNext()) {
+ ReleaseStrategy rs = (ReleaseStrategy) i.next();
+
queryDefinition.getReleaseStrategy().addReleaseStrategy(rs);
+ }
+ }
+
+
// MM: I think the follwing functionality should be present on
MMBaseIndexDefinition itself. and not on Lucene.
// And of course, the new event-mechanism must be used.
if (!readOnly) {
@@ -854,13 +870,35 @@
};
protected void readConfiguration(String resource) {
+
+
+ defaultStrategy.removeAllStrategies();
+ List<URL> configList =
ResourceLoader.getConfigurationRoot().getResourceList(resource);
+ log.service("Reading " + configList);
+ for(URL url : configList) {
+ try {
+ if (! url.openConnection().getDoInput()) continue;
+ Document config = ResourceLoader.getDocument(url, true,
Lucene.class);
+ log.service("Reading lucene strategy configuration from " +
url);
+ Element root = config.getDocumentElement();
+ if (defaultStrategy.size() == 0) {
+ defaultStrategy.fillFromXml(root);
+ }
+ } catch (Exception e) {
+ log.warn(e);
+ }
+ }
+ if (defaultStrategy.size() == 0) {
+ defaultStrategy.addReleaseStrategy(new BasicReleaseStrategy());
+ }
+ log.service("Default release strategy " + defaultStrategy);
+
indexerMap.clear();
searcherMap.clear();
disableIndexes.clear();
defaultIndex = null;
factory.clear();
- List<URL> configList =
ResourceLoader.getConfigurationRoot().getResourceList(resource);
- log.service("Reading " + configList);
+
for(URL url : configList) {
try {
if (! url.openConnection().getDoInput()) continue;
@@ -869,6 +907,11 @@
Element root = config.getDocumentElement();
disableIndexes.addAll(StringSplitter.split(root.getAttribute("disableIndexes")));
+
+ if (defaultStrategy.size() == 0) {
+ defaultStrategy.fillFromXml(root);
+ }
+
NodeList extractorElements =
root.getElementsByTagName("extractor");
for (int i = 0; i < extractorElements.getLength(); i++) {
Element extractorElement = (Element)
extractorElements.item(i);
Index: MMBaseIndexDefinition.java
===================================================================
RCS file:
/var/cvs/contributions/lucene/src/org/mmbase/module/lucene/MMBaseIndexDefinition.java,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -b -r1.24 -r1.25
--- MMBaseIndexDefinition.java 17 Mar 2008 08:58:20 -0000 1.24
+++ MMBaseIndexDefinition.java 19 Mar 2008 16:25:22 -0000 1.25
@@ -26,7 +26,7 @@
* fields can have extra attributes specific to Lucene searching.
*
* @author Pierre van Rooden
- * @version $Id: MMBaseIndexDefinition.java,v 1.24 2008/03/17 08:58:20 andre
Exp $
+ * @version $Id: MMBaseIndexDefinition.java,v 1.25 2008/03/19 16:25:22 michiel
Exp $
**/
class MMBaseIndexDefinition extends QueryDefinition implements IndexDefinition
{
static private final Logger log =
Logging.getLoggerInstance(MMBaseIndexDefinition.class);
@@ -55,11 +55,17 @@
private final Map<String, Float> boosts = new HashMap<String, Float>();
- private final BasicReleaseStrategy releaseStrategy = new
BasicReleaseStrategy();
+
+ private final ChainedReleaseStrategy releaseStrategy = new
ChainedReleaseStrategy();
+
MMBaseIndexDefinition() {
}
+ public ChainedReleaseStrategy getReleaseStrategy() {
+ return releaseStrategy;
+ }
+
public void setId(String i) {
id = i;
}
@@ -195,7 +201,7 @@
}
public String toString() {
- return super.toString() + fields + "SUB[" + subQueries + "]";
+ return super.toString() + fields + "SUB[" + subQueries + "]
releasestrategy: " + releaseStrategy;
}
}
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs