Author: j16sdiz
Date: 2008-12-18 07:41:30 +0000 (Thu, 18 Dec 2008)
New Revision: 24515

Modified:
   trunk/plugins/XMLSpider/XMLSpider.java
Log:
store TermPosition at the end

Modified: trunk/plugins/XMLSpider/XMLSpider.java
===================================================================
--- trunk/plugins/XMLSpider/XMLSpider.java      2008-12-18 07:18:08 UTC (rev 
24514)
+++ trunk/plugins/XMLSpider/XMLSpider.java      2008-12-18 07:41:30 UTC (rev 
24515)
@@ -421,6 +421,7 @@
                                try {
                                        ContentFilter.filter(data, new 
NullBucketFactory(), mimeType, uri.toURI("http://127.0.0.1:8888/";),
                                                pageCallBack);
+                                       pageCallBack.store();
                                        Logger.minor(this, "Filtered " + uri + 
" : " + page.id);
                                } catch (UnsafeContentTypeException e) {
                                        return; // Ignore
@@ -1277,7 +1278,6 @@
                                newPositions[termPos.positions.length] = 
position;
 
                                termPos.positions = newPositions;
-                               db.store(termPos);                              
                
                        }
 
                        mustWriteIndex = true;
@@ -1285,10 +1285,19 @@
 
                protected Map<Term, TermPosition> termPosCache = new 
LinkedHashMap<Term, TermPosition>() {
                        protected boolean removeEldestEntry(Map.Entry<Term, 
TermPosition> eldest) {
-                               return size() > 1024;
+                               if (size() < 1024) return false;
+                               
+                               db.store(eldest.getValue());
+                               return true;
                        }
                };
 
+               public void store() {
+                       for (TermPosition tp : termPosCache.values())
+                               db.store(tp);
+                       termPosCache.clear();
+               }
+
                protected TermPosition getTermPosition(Term term, boolean 
create) {
                        synchronized (term) {
                                TermPosition cachedTermPos = 
termPosCache.get(term);

_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs

Reply via email to