Author: orbiter
Date: 2008-02-02 12:30:47 +0100 (Sat, 02 Feb 2008)
New Revision: 4428

Modified:
   trunk/skins/default.css
   trunk/source/de/anomic/plasma/plasmaSearchEvent.java
   trunk/source/de/anomic/plasma/plasmaSnippetCache.java
Log:
- removed dashed line from default skin (looks much better!)
- better timing when displaying results

Modified: trunk/skins/default.css
===================================================================
--- trunk/skins/default.css     2008-02-02 00:16:00 UTC (rev 4427)
+++ trunk/skins/default.css     2008-02-02 11:30:47 UTC (rev 4428)
@@ -156,7 +156,7 @@
 /* Searchresults */
 
 .searchresults {
-  border-top:1px #000 dashed;
+  /*border-top:1px #000 dashed;*/
 }
 
 .searchresults .url a {

Modified: trunk/source/de/anomic/plasma/plasmaSearchEvent.java
===================================================================
--- trunk/source/de/anomic/plasma/plasmaSearchEvent.java        2008-02-02 
00:16:00 UTC (rev 4427)
+++ trunk/source/de/anomic/plasma/plasmaSearchEvent.java        2008-02-02 
11:30:47 UTC (rev 4428)
@@ -391,17 +391,6 @@
         }
         return false;
     }
-
-    private int countFinishedWorkerThreads() {
-        if (this.workerThreads == null) return workerThreadCount;
-        int c = 0;
-        for (int i = 0; i < workerThreadCount; i++) {
-           if ((this.workerThreads[i] == null) ||
-               !(this.workerThreads[i].isAlive()) ||
-               (this.workerThreads[i].busytime() >= 3000)) c++;
-        }
-        return c;
-    }
     
     private boolean anyRemoteSearchAlive() {
         // check primary search threads
@@ -504,7 +493,6 @@
     private class resultWorker extends Thread {
         
         private long timeout; // the date until this thread should try to work
-        private long sleeptime; // the sleeptime of this thread at the 
beginning of its life
         private long lastLifeSign; // when the last time the run()-loop was 
executed
         private int id;
         
@@ -512,7 +500,7 @@
             this.id = id;
             this.lastLifeSign = System.currentTimeMillis();
             this.timeout = System.currentTimeMillis() + Math.max(1000, 
maxlifetime);
-            this.sleeptime = Math.min(300, maxlifetime / 10 * id);
+            //this.sleeptime = Math.min(300, maxlifetime / 10 * id);
         }
 
         public void run() {
@@ -522,7 +510,7 @@
             while (System.currentTimeMillis() < this.timeout) {
                 this.lastLifeSign = System.currentTimeMillis();
 
-                if (resultList.size() >= query.neededResults() + 
query.displayResults()) break; // we have enough
+                if (resultList.size() >= query.neededResults() /*+ 
query.displayResults()*/) break; // we have enough
 
                 // get next entry
                 page = rankedCache.bestURL(true);
@@ -554,11 +542,6 @@
                     rankedCache.addReferences(resultEntry);
                 }
                 //System.out.println("DEBUG SNIPPET_LOADING: thread " + id + " 
got " + resultEntry.url());
-
-                if (resultList.size() >= query.neededResults() + 
query.displayResults()) break; // we have enough
-
-                // sleep first to give remote loading threads a chance to 
fetch entries
-                if (anyRemoteSearchAlive()) try 
{Thread.sleep(this.sleeptime);} catch (InterruptedException e1) {}
             }
             serverLog.logInfo("SEARCH", "resultWorker thread " + id + " 
terminated");
         }
@@ -586,11 +569,29 @@
     
     public ResultEntry oneResult(int item) {
         // first sleep a while to give accumulation threads a chance to work
-        while (((localSearchThread != null) && (localSearchThread.isAlive())) 
||
-                ((countFinishedWorkerThreads() <= item) && (item < 
workerThreadCount)) ||
-               ((this.primarySearchThreads != null) && 
(this.primarySearchThreads.length > item) && (anyWorkerAlive()) && 
-                ((this.resultList.size() <= item) || 
(countFinishedRemoteSearch() <= item)))) {
-            try {Thread.sleep(100);} catch (InterruptedException e) {}
+        if ((query.domType == plasmaSearchQuery.SEARCHDOM_GLOBALDHT) ||
+            (query.domType == plasmaSearchQuery.SEARCHDOM_CLUSTERALL)) {
+            // this is a search using remote search threads. Also the local 
search thread is started as background process
+            if ((localSearchThread != null) && (localSearchThread.isAlive())) {
+                // in case that the local search takes longer than some other 
remote search requests, 
+                // do some sleeps to give the local process a chance to 
contribute
+                try {Thread.sleep(200);} catch (InterruptedException e) {}
+            }
+            // now wait until as many remote worker threads have finished, as 
we want to display results
+            while ((this.primarySearchThreads != null) && 
(this.primarySearchThreads.length > item) && (anyWorkerAlive()) && 
+                   ((this.resultList.size() <= item) || 
(countFinishedRemoteSearch() <= item))) {
+                try {Thread.sleep(100);} catch (InterruptedException e) {}
+            }
+            // finally wait until enough results are there produced from the 
snippet fetch process
+            while ((anyWorkerAlive()) && (this.resultList.size() <= item)) {
+                try {Thread.sleep(100);} catch (InterruptedException e) {}
+            }
+        } else {
+            // we did a local search. If we arrive here, the local search 
process was finished
+            // and the only things we need to wait for are snippets from 
snippet fetch processes
+            while ((anyWorkerAlive()) && (this.resultList.size() <= item)) {
+                try {Thread.sleep(100);} catch (InterruptedException e) {}
+            }
         }
         
         // finally, if there is something, return the result

Modified: trunk/source/de/anomic/plasma/plasmaSnippetCache.java
===================================================================
--- trunk/source/de/anomic/plasma/plasmaSnippetCache.java       2008-02-02 
00:16:00 UTC (rev 4427)
+++ trunk/source/de/anomic/plasma/plasmaSnippetCache.java       2008-02-02 
11:30:47 UTC (rev 4428)
@@ -291,6 +291,9 @@
             } else if (containsAllHashes(comp.dc_subject(), queryhashes)) {
                 // try to create the snippet from information given in the 
subject metadata
                 return new TextSnippet(url, (comp.dc_creator().length() > 0) ? 
comp.dc_creator() : comp.dc_subject(), SOURCE_METADATA, null, null, 
faviconCache.get(url.hash()));
+            } else if (containsAllHashes(comp.url().toNormalform(true, true), 
queryhashes)) {
+                // try to create the snippet from information given in the 
subject metadata
+                return new TextSnippet(url, (comp.dc_creator().length() > 0) ? 
comp.dc_creator() : comp.dc_subject(), SOURCE_METADATA, null, null, 
faviconCache.get(url.hash()));
             } else if (fetchOnline) {
                 // if not found try to download it
                 

_______________________________________________
YaCy-svn mailing list
YaCy-svn@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/yacy-svn

Antwort per Email an