Update of /var/cvs/contributions/lucene/src/org/mmbase/module/lucene
In directory james.mmbase.org:/tmp/cvs-serv19658/src/org/mmbase/module/lucene
Modified Files:
Indexer.java Lucene.java Searcher.java
Added Files:
FullIndexEvents.java
Log Message:
better report full index in admin pages
See also:
http://cvs.mmbase.org/viewcvs/contributions/lucene/src/org/mmbase/module/lucene
FullIndexEvents.java is new
Index: Indexer.java
===================================================================
RCS file:
/var/cvs/contributions/lucene/src/org/mmbase/module/lucene/Indexer.java,v
retrieving revision 1.52
retrieving revision 1.53
diff -u -b -r1.52 -r1.53
--- Indexer.java 1 Feb 2008 11:08:21 -0000 1.52
+++ Indexer.java 1 Feb 2008 12:40:42 -0000 1.53
@@ -34,7 +34,7 @@
*
* @author Pierre van Rooden
* @author Michiel Meeuwissen
- * @version $Id: Indexer.java,v 1.52 2008/02/01 11:08:21 michiel Exp $
+ * @version $Id: Indexer.java,v 1.53 2008/02/01 12:40:42 michiel Exp $
**/
public class Indexer {
@@ -404,6 +404,7 @@
*/
public void fullIndex() {
log.service("Doing full index for " + toString());
+ EventManager.getInstance().propagateEvent(new
FullIndexEvents.Event(getName(), FullIndexEvents.Status.START, 0));
IndexWriter writer = null;
try {
Directory fullIndex = getDirectoryForFullIndex();
@@ -413,7 +414,7 @@
int subIndexNumber = 0;
for (IndexDefinition indexDefinition : queries) {
subIndexNumber++;
- log.debug("full index for " + indexDefinition);
+ log.service("full index for " + indexDefinition);
CloseableIterator<? extends IndexEntry> j =
indexDefinition.getCursor();
try {
index(j, writer, indexDefinition.getId());
@@ -429,6 +430,7 @@
Directory.copy(fullIndex, getDirectory(), true);
Date lastFullIndex = setLastFullIndex(startTime);
log.info("Full index finished at " + lastFullIndex + ". Copied " +
fullIndex + " to " + getDirectory() + " Total nr documents in index '" +
getName() + "': " + writer.docCount());
+ EventManager.getInstance().propagateEvent(new
FullIndexEvents.Event(getName(), FullIndexEvents.Status.IDLE,
writer.docCount()));
} catch (Exception e) {
addError(e.getMessage());
log.error("Cannot run FullIndex: " + e.getMessage(), e);
@@ -464,6 +466,7 @@
indexed++;
if (indexed % 100 == 0) {
log.service("Indexed " + indexed + " documents");
+ EventManager.getInstance().propagateEvent(new
FullIndexEvents.Event(getName(), FullIndexEvents.Status.BUSY, indexed));
} else if (log.isDebugEnabled()) {
log.debug("Indexed " + indexed + " documents");
}
Index: Lucene.java
===================================================================
RCS file:
/var/cvs/contributions/lucene/src/org/mmbase/module/lucene/Lucene.java,v
retrieving revision 1.105
retrieving revision 1.106
diff -u -b -r1.105 -r1.106
--- Lucene.java 1 Feb 2008 11:08:21 -0000 1.105
+++ Lucene.java 1 Feb 2008 12:40:42 -0000 1.106
@@ -48,7 +48,7 @@
*
* @author Pierre van Rooden
* @author Michiel Meeuwissen
- * @version $Id: Lucene.java,v 1.105 2008/02/01 11:08:21 michiel Exp $
+ * @version $Id: Lucene.java,v 1.106 2008/02/01 12:40:42 michiel Exp $
**/
public class Lucene extends ReloadableModule implements NodeEventListener,
RelationEventListener, IdEventListener {
@@ -493,6 +493,16 @@
{
addFunction(clearDirectory);
}
+ protected Function/*<Integer>*/ fullIndexing = new
AbstractFunction/*<Integer>*/("fullIndexing", new Parameter[] {INDEX, COPY},
ReturnType.BOOLEAN) {
+ public Integer getFunctionValue(Parameters arguments) {
+ String index = (String) arguments.getString(INDEX);
+ Searcher searcher = getSearcher(index);
+ return searcher.getFullIndexSize();
+ }
+ };
+ {
+ addFunction(fullIndexing);
+ }
//protected Function<Integer> unAssignFunction = new
AbstractFunction<Integer>("unassign", new Parameter("id", Integer.class, true))
{
protected Function/*<Integer>*/ unAssignFunction = new
AbstractFunction/*<Integer>*/("unassign", new Parameter[] {new Parameter("id",
Integer.class, true)}, ReturnType.INTEGER) {
@@ -1287,7 +1297,7 @@
}
}
void fullIndex(final String index) {
- if (status != BUSY_FULL_INDEX || !
assignment.equals(ALL_FULL_INDEX)) {
+ if (status != BUSY_FULL_INDEX || !
ALL_FULL_INDEX.equals(assignment)) {
if (! assigned(ALL_FULL_INDEX)) {
// only schedule a full index if no complete full index is
currently busy or scheduled already.
Assignment a = new Assignment() {
Index: Searcher.java
===================================================================
RCS file:
/var/cvs/contributions/lucene/src/org/mmbase/module/lucene/Searcher.java,v
retrieving revision 1.44
retrieving revision 1.45
diff -u -b -r1.44 -r1.45
--- Searcher.java 1 Feb 2008 11:08:21 -0000 1.44
+++ Searcher.java 1 Feb 2008 12:40:42 -0000 1.45
@@ -33,10 +33,10 @@
* A wrapper around Lucene's [EMAIL PROTECTED]
org.apache.lucene.search.IndexSearcher}. Every [EMAIL PROTECTED] Indexer} has
its own Searcher.
*
* @author Pierre van Rooden
- * @version $Id: Searcher.java,v 1.44 2008/02/01 11:08:21 michiel Exp $
+ * @version $Id: Searcher.java,v 1.45 2008/02/01 12:40:42 michiel Exp $
* @todo Should the StopAnalyzers be replaced by index.analyzer? Something
else?
**/
-public class Searcher implements NewSearcher.Listener {
+public class Searcher implements NewSearcher.Listener,
FullIndexEvents.Listener {
private static final Logger log =
Logging.getLoggerInstance(Searcher.class);
@@ -55,6 +55,9 @@
private final Timer timer = new Timer();
private int closingSearchers = 0;
+ private FullIndexEvents.Status status = FullIndexEvents.Status.IDLE;
+ private int intermediateSize = -1;
+
/**
* @param index The index where this Search is for
*/
@@ -71,6 +74,16 @@
needsNewSearcher = true;
}
}
+ public void notify(FullIndexEvents.Event event) {
+ if (event.getIndex().equals(index.getName())) {
+ log.debug("Received " + event);
+ status = event.getStatus();
+ intermediateSize = event.getIndexed();
+ }
+ }
+ public int getFullIndexSize() {
+ return status != FullIndexEvents.Status.IDLE ? intermediateSize : -1;
+ }
protected synchronized IndexSearcher getSearcher(boolean copy) throws
IOException {
if (copy) return new IndexSearcher(index.getDirectoryForFullIndex() );
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs