Author: orbiter
Date: 2008-01-29 00:41:39 +0100 (Tue, 29 Jan 2008)
New Revision: 4413

Modified:
   trunk/htroot/IndexControlRWIs_p.html
   trunk/htroot/Ranking_p.java
   trunk/source/de/anomic/index/indexRWIEntryOrder.java
   trunk/source/de/anomic/index/indexRWIVarEntry.java
   trunk/source/de/anomic/plasma/plasmaSearchAPI.java
   trunk/source/de/anomic/plasma/plasmaSearchRankingProcess.java
   trunk/source/de/anomic/plasma/plasmaSearchRankingProfile.java
   trunk/source/de/anomic/yacy/yacyClient.java
Log:
added term-frequency ranking

Modified: trunk/htroot/IndexControlRWIs_p.html
===================================================================
--- trunk/htroot/IndexControlRWIs_p.html        2008-01-28 20:08:32 UTC (rev 
4412)
+++ trunk/htroot/IndexControlRWIs_p.html        2008-01-28 23:41:39 UTC (rev 
4413)
@@ -152,6 +152,7 @@
         <td>pos of phrase</td>
         <td>pos in phrase</td>
         <td>word distance</td>
+        <td>term frequency</td>
         <td>authority</td>
         <td>date</td>
         <td>words in title</td>
@@ -181,6 +182,7 @@
         <td class="TableCellDark">#[phrase]#</td>
         <td class="TableCellDark">#[posinphrase]#</td>
         <td class="TableCellDark">#[worddistance]#</td>
+        <td>#[tf]#</td>
         <td>#[authority]#</td>
         <td>#[date]#</td>
         <td>#[wordsintitle]#</td>

Modified: trunk/htroot/Ranking_p.java
===================================================================
--- trunk/htroot/Ranking_p.java 2008-01-28 20:08:32 UTC (rev 4412)
+++ trunk/htroot/Ranking_p.java 2008-01-28 23:41:39 UTC (rev 4413)
@@ -67,7 +67,8 @@
                rankingParameters.put(plasmaSearchRankingProfile.POSOFPHRASE, 
"Position Of Phrase");
                rankingParameters.put(plasmaSearchRankingProfile.POSINPHRASE, 
"Position In Phrase");
                rankingParameters.put(plasmaSearchRankingProfile.PREFER, 
"Application Of Prefer Pattern");
-               
rankingParameters.put(plasmaSearchRankingProfile.URLCOMPINTOPLIST, "URL 
Component Appears In Toplist");
+               rankingParameters.put(plasmaSearchRankingProfile.TERMFREQUENCY, 
"Term Frequency");
+        rankingParameters.put(plasmaSearchRankingProfile.URLCOMPINTOPLIST, 
"URL Component Appears In Toplist");
                rankingParameters.put(plasmaSearchRankingProfile.URLCOMPS, "URL 
Components");
                rankingParameters.put(plasmaSearchRankingProfile.URLLENGTH, 
"URL Length");
                rankingParameters.put(plasmaSearchRankingProfile.WORDDISTANCE, 
"Word Distance");

Modified: trunk/source/de/anomic/index/indexRWIEntryOrder.java
===================================================================
--- trunk/source/de/anomic/index/indexRWIEntryOrder.java        2008-01-28 
20:08:32 UTC (rev 4412)
+++ trunk/source/de/anomic/index/indexRWIEntryOrder.java        2008-01-28 
23:41:39 UTC (rev 4413)
@@ -39,10 +39,10 @@
 import de.anomic.plasma.plasmaSearchRankingProfile;
 import de.anomic.yacy.yacyURL;
 
-public class indexRWIEntryOrder extends kelondroAbstractOrder<indexRWIEntry> 
implements kelondroOrder<indexRWIEntry> {
+public class indexRWIEntryOrder extends 
kelondroAbstractOrder<indexRWIVarEntry> implements 
kelondroOrder<indexRWIVarEntry> {
     private indexRWIVarEntry min, max;
     private plasmaSearchRankingProfile ranking;
-    private kelondroMScoreCluster<String> doms;
+    private kelondroMScoreCluster<String> doms; // collected for "authority" 
heuristic 
     private int maxdomcount;
     
     private static final int processors = 
Runtime.getRuntime().availableProcessors(); // for multiprocessor support, used 
during normalization
@@ -55,7 +55,8 @@
         this.maxdomcount = 0;
     }
     
-    public void extend(indexContainer container) {
+    public void normalizeWith(indexContainer container) {
+        // normalize ranking: find minimum and maxiumum of separate ranking 
criteria
         assert (container != null);
     
         //long s0 = System.currentTimeMillis();
@@ -102,7 +103,7 @@
         if (this.doms.size() > 0) this.maxdomcount = this.doms.getMaxScore();
     }
     
-    public kelondroOrder<indexRWIEntry> clone() {
+    public kelondroOrder<indexRWIVarEntry> clone() {
         return null;
     }
     
@@ -111,14 +112,14 @@
     }
     
     public long cardinal(byte[] key) {
-        return cardinal(new indexRWIRowEntry(key));
+        return cardinal(new indexRWIVarEntry(new indexRWIRowEntry(key)));
     }
 
-    public long tf(indexRWIEntry t) {
-        return (t.hitcount() - min.hitcount()) * (1 + max.wordsintext() - 
min.wordsintext()) / (1 + max.hitcount() - min.hitcount()) / (t.wordsintext() - 
min.wordsintext());
+    public static final double termFrequency(indexRWIEntry t) {
+        return (((double) t.hitcount()) / ((double) (t.wordsintext() + 
t.wordsintitle() + 1)));
     }
     
-    public long cardinal(indexRWIEntry t) {
+    public long cardinal(indexRWIVarEntry t) {
         //return Long.MAX_VALUE - preRanking(ranking, iEntry, this.entryMin, 
this.entryMax, this.searchWords);
         // the normalizedEntry must be a normalized indexEntry
         kelondroBitfield flags = t.flags();
@@ -138,25 +139,26 @@
            + (       (((t.llocal()       - min.llocal()        ) << 8) / (1 + 
max.llocal()       - min.llocal())        ) << ranking.coeff_llocal)
            + (       (((t.lother()       - min.lother()        ) << 8) / (1 + 
max.lother()       - min.lother())        ) << ranking.coeff_lother)
            + (       (((t.hitcount()     - min.hitcount()      ) << 8) / (1 + 
max.hitcount()     - min.hitcount())      ) << ranking.coeff_hitcount)
+           + (((int)((((t.termFrequency()- min.termFrequency() )*256.0)/ (1 + 
max.termFrequency()- min.termFrequency()))))<< ranking.coeff_termfrequency)
            + (       authority(t.urlHash()) << ranking.coeff_authority)
-           + (((flags.get(indexRWIEntry.flag_app_dc_identifier))        ? 255 
<< ranking.coeff_appurl      : 0))
-           + (((flags.get(indexRWIEntry.flag_app_dc_title))      ? 255 << 
ranking.coeff_appdescr    : 0))
+           + (((flags.get(indexRWIEntry.flag_app_dc_identifier))  ? 255 << 
ranking.coeff_appurl      : 0))
+           + (((flags.get(indexRWIEntry.flag_app_dc_title))       ? 255 << 
ranking.coeff_appdescr    : 0))
            + (((flags.get(indexRWIEntry.flag_app_dc_creator))     ? 255 << 
ranking.coeff_appauthor   : 0))
-           + (((flags.get(indexRWIEntry.flag_app_dc_subject))       ? 255 << 
ranking.coeff_apptags     : 0))
-           + (((flags.get(indexRWIEntry.flag_app_dc_description))  ? 255 << 
ranking.coeff_appref      : 0))
-           + (((flags.get(indexRWIEntry.flag_app_emphasized)) ? 255 << 
ranking.coeff_appemph     : 0))
-           + (((flags.get(plasmaCondenser.flag_cat_indexof))  ? 255 << 
ranking.coeff_catindexof  : 0))
-           + (((flags.get(plasmaCondenser.flag_cat_hasimage)) ? 255 << 
ranking.coeff_cathasimage : 0))
-           + (((flags.get(plasmaCondenser.flag_cat_hasaudio)) ? 255 << 
ranking.coeff_cathasaudio : 0))
-           + (((flags.get(plasmaCondenser.flag_cat_hasvideo)) ? 255 << 
ranking.coeff_cathasvideo : 0))
-           + (((flags.get(plasmaCondenser.flag_cat_hasapp))   ? 255 << 
ranking.coeff_cathasapp   : 0))
-           + (((yacyURL.probablyRootURL(t.urlHash()))         ?  15 << 
ranking.coeff_urllength   : 0));
+           + (((flags.get(indexRWIEntry.flag_app_dc_subject))     ? 255 << 
ranking.coeff_apptags     : 0))
+           + (((flags.get(indexRWIEntry.flag_app_dc_description)) ? 255 << 
ranking.coeff_appref      : 0))
+           + (((flags.get(indexRWIEntry.flag_app_emphasized))     ? 255 << 
ranking.coeff_appemph     : 0))
+           + (((flags.get(plasmaCondenser.flag_cat_indexof))      ? 255 << 
ranking.coeff_catindexof  : 0))
+           + (((flags.get(plasmaCondenser.flag_cat_hasimage))     ? 255 << 
ranking.coeff_cathasimage : 0))
+           + (((flags.get(plasmaCondenser.flag_cat_hasaudio))     ? 255 << 
ranking.coeff_cathasaudio : 0))
+           + (((flags.get(plasmaCondenser.flag_cat_hasvideo))     ? 255 << 
ranking.coeff_cathasvideo : 0))
+           + (((flags.get(plasmaCondenser.flag_cat_hasapp))       ? 255 << 
ranking.coeff_cathasapp   : 0))
+           + (((yacyURL.probablyRootURL(t.urlHash()))             ?  15 << 
ranking.coeff_urllength   : 0));
         //if (searchWords != null) r += (yacyURL.probablyWordURL(t.urlHash(), 
searchWords) != null) ? 256 << ranking.coeff_appurl : 0;
 
         return Long.MAX_VALUE - r; // returns a reversed number: the lower the 
number the better the ranking. This is used for simple sorting with a TreeMap
     }
     
-    public int compare(indexRWIEntry a, indexRWIEntry b) {
+    public int compare(indexRWIVarEntry a, indexRWIVarEntry b) {
        long ca = cardinal(a);
        long cb = cardinal(b);
         return (ca > cb) ? 1 : (ca < cb) ? -1 : 0;
@@ -166,7 +168,7 @@
         return "rx";
     }
 
-    public boolean wellformed(indexRWIEntry a) {
+    public boolean wellformed(indexRWIVarEntry a) {
         return true;
     }
 

Modified: trunk/source/de/anomic/index/indexRWIVarEntry.java
===================================================================
--- trunk/source/de/anomic/index/indexRWIVarEntry.java  2008-01-28 20:08:32 UTC 
(rev 4412)
+++ trunk/source/de/anomic/index/indexRWIVarEntry.java  2008-01-28 23:41:39 UTC 
(rev 4413)
@@ -39,8 +39,9 @@
                posinphrase, posofphrase,
                quality, urlcomps, urllength, virtualAge,
                worddistance, wordsintext, wordsintitle;
+    public double termFrequency;
     
-    public indexRWIVarEntry(indexRWIRowEntry e) {
+    public indexRWIVarEntry(indexRWIEntry e) {
         this.flags = e.flags();
         this.freshUntil = e.freshUntil();
         this.lastModified = e.lastModified();
@@ -61,6 +62,7 @@
         this.worddistance = e.worddistance();
         this.wordsintext = e.wordsintext();
         this.wordsintitle = e.wordsintitle();
+        this.termFrequency = ((double) e.hitcount()) / ((double) 
(e.wordsintext() + e.wordsintitle() + 1));
     }
     
     public void combineDistance(indexRWIEntry oe) {
@@ -166,6 +168,10 @@
         return wordsintitle;
     }
 
+    public double termFrequency() {
+        return termFrequency;
+    }
+    
     public static final void min(indexRWIVarEntry t, indexRWIEntry other) {
         int v;
         long w;
@@ -185,6 +191,9 @@
         if (t.urllength() > (v = other.urllength())) t.urllength = v;
         if (t.urlcomps() > (v = other.urlcomps())) t.urlcomps = v;
         if (t.wordsintitle() > (v = other.wordsintitle())) t.wordsintitle = v;
+        double tf = (other instanceof indexRWIVarEntry) ? ((indexRWIVarEntry) 
other).termFrequency : indexRWIEntryOrder.termFrequency(other);
+        if (t.termFrequency > tf) t.termFrequency = tf;
+        
     }
     
     public static final void max(indexRWIVarEntry t, indexRWIEntry other) {
@@ -206,6 +215,8 @@
         if (t.urllength() < (v = other.urllength())) t.urllength = v;
         if (t.urlcomps() < (v = other.urlcomps())) t.urlcomps = v;
         if (t.wordsintitle() < (v = other.wordsintitle())) t.wordsintitle = v;
+        double tf = (other instanceof indexRWIVarEntry) ? ((indexRWIVarEntry) 
other).termFrequency : indexRWIEntryOrder.termFrequency(other);
+        if (t.termFrequency < tf) t.termFrequency = tf;
     }
 
 }

Modified: trunk/source/de/anomic/plasma/plasmaSearchAPI.java
===================================================================
--- trunk/source/de/anomic/plasma/plasmaSearchAPI.java  2008-01-28 20:08:32 UTC 
(rev 4412)
+++ trunk/source/de/anomic/plasma/plasmaSearchAPI.java  2008-01-28 23:41:39 UTC 
(rev 4413)
@@ -33,6 +33,7 @@
 
 import de.anomic.data.listManager;
 import de.anomic.index.indexRWIEntry;
+import de.anomic.index.indexRWIEntryOrder;
 import de.anomic.index.indexURLEntry;
 import de.anomic.kelondro.kelondroBitfield;
 import de.anomic.plasma.urlPattern.plasmaURLPattern;
@@ -149,6 +150,7 @@
                 prop.putNum("genUrlList_urlList_"+i+"_urlExists_ranking", 
(entry.ranking() - rn));
                 prop.putNum("genUrlList_urlList_"+i+"_urlExists_domlength", 
yacyURL.domLengthEstimation(entry.hash()));
                 prop.putNum("genUrlList_urlList_"+i+"_urlExists_ybr", 
plasmaSearchRankingProcess.ybr(entry.hash()));
+                prop.putNum("genUrlList_urlList_"+i+"_urlExists_tf", 
indexRWIEntryOrder.termFrequency(entry.word()));
                 prop.putNum("genUrlList_urlList_"+i+"_urlExists_authority", 
(ranked.getOrder() == null) ? -1 : ranked.getOrder().authority(entry.hash()));
                 prop.put("genUrlList_urlList_"+i+"_urlExists_date", 
serverDate.formatShortDay(new Date(entry.word().lastModified())));
                 prop.putNum("genUrlList_urlList_"+i+"_urlExists_wordsintitle", 
entry.word().wordsintitle());

Modified: trunk/source/de/anomic/plasma/plasmaSearchRankingProcess.java
===================================================================
--- trunk/source/de/anomic/plasma/plasmaSearchRankingProcess.java       
2008-01-28 20:08:32 UTC (rev 4412)
+++ trunk/source/de/anomic/plasma/plasmaSearchRankingProcess.java       
2008-01-28 23:41:39 UTC (rev 4413)
@@ -40,6 +40,7 @@
 import de.anomic.index.indexRWIEntry;
 import de.anomic.index.indexRWIEntryOrder;
 import de.anomic.index.indexRWIRowEntry;
+import de.anomic.index.indexRWIVarEntry;
 import de.anomic.index.indexURLEntry;
 import de.anomic.kelondro.kelondroBinSearch;
 import de.anomic.kelondro.kelondroMScoreCluster;
@@ -113,81 +114,80 @@
         }
         
         if (sortorder == 2) {
-            insert(index, true);
+            insertRanked(index, true);
         } else {            
-            final Iterator<indexRWIRowEntry> en = index.entries();
-            // generate a new map where the urls are sorted (not by hash but 
by the url text)
+            insertNoOrder(index, fetchURLs);
+        }
+    }
+    
+    private void insertNoOrder(indexContainer index, boolean local) {
+        final Iterator<indexRWIRowEntry> en = index.entries();
+        // generate a new map where the urls are sorted (not by hash but by 
the url text)
+        
+        indexRWIEntry ientry;
+        indexURLEntry uentry;
+        String u;
+        loop: while (en.hasNext()) {
+            ientry = (indexRWIEntry) en.next();
+
+            // check constraints
+            if (!testFlags(ientry)) continue loop;
             
-            indexRWIEntry ientry;
-            indexURLEntry uentry;
-            String u;
-            loop: while (en.hasNext()) {
-                ientry = (indexRWIEntry) en.next();
-
-                // check constraints
-                if (!testFlags(ientry)) continue loop;
-                
-                // increase flag counts
-                for (int i = 0; i < 32; i++) {
-                    if (ientry.flags().get(i)) {flagcount[i]++;}
-                }
-                
-                // load url
-                if (sortorder == 0) {
-                    this.sortedRWIEntries.put(ientry.urlHash(), ientry);
-                    this.urlhashes.put(ientry.urlHash(), ientry.urlHash());
-                    filteredCount++;
-                } else {
-                    if (fetchURLs) {
-                        uentry = wordIndex.loadedURL.load(ientry.urlHash(), 
ientry, 0);
-                        if (uentry == null) {
-                            this.misses.add(ientry.urlHash());
-                        } else {
-                            u = uentry.comp().url().toNormalform(false, true);
-                            this.sortedRWIEntries.put(u, ientry);
-                            this.urlhashes.put(ientry.urlHash(), u);
-                            filteredCount++;
-                        }
+            // increase flag counts
+            for (int i = 0; i < 32; i++) {
+                if (ientry.flags().get(i)) {flagcount[i]++;}
+            }
+            
+            // load url
+            if (sortorder == 0) {
+                this.sortedRWIEntries.put(ientry.urlHash(), ientry);
+                this.urlhashes.put(ientry.urlHash(), ientry.urlHash());
+                filteredCount++;
+            } else {
+                if (local) {
+                    uentry = wordIndex.loadedURL.load(ientry.urlHash(), 
ientry, 0);
+                    if (uentry == null) {
+                        this.misses.add(ientry.urlHash());
                     } else {
+                        u = uentry.comp().url().toNormalform(false, true);
+                        this.sortedRWIEntries.put(u, ientry);
+                        this.urlhashes.put(ientry.urlHash(), u);
                         filteredCount++;
                     }
+                } else {
+                    filteredCount++;
                 }
-                
-                // interrupt if we have enough
-                if ((query.neededResults() > 0) && (this.misses.size() + 
this.sortedRWIEntries.size() > query.neededResults())) break loop;
-            } // end loop
-        }
+            }
+            
+            // interrupt if we have enough
+            if ((query.neededResults() > 0) && (this.misses.size() + 
this.sortedRWIEntries.size() > query.neededResults())) break loop;
+        } // end loop
     }
     
-    public void insert(indexContainer container, boolean local) {
+    public void insertRanked(indexContainer index, boolean local) {
         // we collect the urlhashes and construct a list with urlEntry objects
         // attention: if minEntries is too high, this method will not 
terminate within the maxTime
 
-        assert (container != null);
-        if (container.size() == 0) return;
+        assert (index != null);
+        if (index.size() == 0) return;
         
         long timer = System.currentTimeMillis();
         if (this.order == null) {
             this.order = new indexRWIEntryOrder(query.ranking);
         }
-        this.order.extend(container);
-        serverProfiling.update("SEARCH", new 
plasmaProfiling.searchEvent(query.id(true), plasmaSearchEvent.NORMALIZING, 
container.size(), System.currentTimeMillis() - timer));
+        this.order.normalizeWith(index);
+        serverProfiling.update("SEARCH", new 
plasmaProfiling.searchEvent(query.id(true), plasmaSearchEvent.NORMALIZING, 
index.size(), System.currentTimeMillis() - timer));
         
-        /*
-        container.setOrdering(o, 0);
-        container.sort();
-        */
-        
         // normalize entries and get ranking
         timer = System.currentTimeMillis();
-        Iterator<indexRWIRowEntry> i = container.entries();
-        indexRWIEntry iEntry, l;
+        Iterator<indexRWIRowEntry> i = index.entries();
+        indexRWIVarEntry iEntry, l;
         long biggestEntry = 0;
         //long s0 = System.currentTimeMillis();
         Long r;
         while (i.hasNext()) {
-            iEntry = (indexRWIEntry) i.next();
-            if (iEntry.urlHash().length() != container.row().primaryKeyLength) 
continue;
+            iEntry = new indexRWIVarEntry(i.next());
+            if (iEntry.urlHash().length() != index.row().primaryKeyLength) 
continue;
 
             // increase flag counts
             for (int j = 0; j < 32; j++) {
@@ -216,11 +216,11 @@
                     continue;
                 } else {
                     if (urlhashes.containsKey(iEntry.urlHash())) continue;
-                    l = (indexRWIEntry) sortedRWIEntries.remove((Long) 
sortedRWIEntries.lastKey());
+                    l = (indexRWIVarEntry) sortedRWIEntries.remove((Long) 
sortedRWIEntries.lastKey());
                     urlhashes.remove(l.urlHash());
                     while (sortedRWIEntries.containsKey(r)) r = new 
Long(r.longValue() + 1);
                     sortedRWIEntries.put(r, iEntry);
-                    biggestEntry = order.cardinal((indexRWIEntry) 
sortedRWIEntries.get(sortedRWIEntries.lastKey()));
+                    biggestEntry = order.cardinal((indexRWIVarEntry) 
sortedRWIEntries.get(sortedRWIEntries.lastKey()));
                 }
             }
             
@@ -232,7 +232,7 @@
         //System.out.println("###DEBUG### time to sort " + container.size() + 
" entries to " + this.filteredCount + ": " + sc + " milliseconds, " + 
(container.size() / sc) + " entries/millisecond, ranking = " + tc);
         
         //if ((query.neededResults() > 0) && (container.size() > 
query.neededResults())) remove(true, true);
-        serverProfiling.update("SEARCH", new 
plasmaProfiling.searchEvent(query.id(true), plasmaSearchEvent.PRESORT, 
container.size(), System.currentTimeMillis() - timer));
+        serverProfiling.update("SEARCH", new 
plasmaProfiling.searchEvent(query.id(true), plasmaSearchEvent.PRESORT, 
index.size(), System.currentTimeMillis() - timer));
     }
 
     private boolean testFlags(indexRWIEntry ientry) {

Modified: trunk/source/de/anomic/plasma/plasmaSearchRankingProfile.java
===================================================================
--- trunk/source/de/anomic/plasma/plasmaSearchRankingProfile.java       
2008-01-28 20:08:32 UTC (rev 4412)
+++ trunk/source/de/anomic/plasma/plasmaSearchRankingProfile.java       
2008-01-28 23:41:39 UTC (rev 4413)
@@ -75,6 +75,7 @@
     public static final String CATHASAUDIO   = "cathasaudio";
     public static final String CATHASVIDEO   = "cathasvideo";
     public static final String CATHASAPP     = "cathasapp";
+    public static final String TERMFREQUENCY = "tf";
 
     // post-sort predicates
     public static final String URLCOMPINTOPLIST   = "urlcompintoplist";
@@ -91,7 +92,8 @@
         coeff_posintext, coeff_posofphrase, coeff_posinphrase, 
coeff_authority, coeff_worddistance,
         coeff_appurl, coeff_appdescr, coeff_appauthor, coeff_apptags, 
coeff_appref, coeff_appemph,
         coeff_catindexof, coeff_cathasimage, coeff_cathasaudio, 
coeff_cathasvideo, coeff_cathasapp,
-        coeff_urlcompintoplist, coeff_descrcompintoplist, coeff_prefer;
+        coeff_urlcompintoplist, coeff_descrcompintoplist, coeff_prefer,
+        coeff_termfrequency;
     
     public plasmaSearchRankingProfile(int mediatype) {
         // set default-values
@@ -103,28 +105,29 @@
         coeff_phrasesintext      = 3;
         coeff_llocal             = 2;
         coeff_lother             = 3;
-        coeff_urllength          = 15;
-        coeff_urlcomps           = 15;
+        coeff_urllength          = 13;
+        coeff_urlcomps           = 13;
         coeff_hitcount           = 4;
-        coeff_posintext          = 11;
+        coeff_posintext          = 10;
         coeff_posofphrase        = 9;
         coeff_posinphrase        = 1;
-        coeff_authority          = 13;
-        coeff_worddistance       = 15;
-        coeff_appurl             = 14;
-        coeff_appdescr           = 12;
-        coeff_appauthor          = 13;
+        coeff_authority          = 12;
+        coeff_worddistance       = 13;
+        coeff_appurl             = 13;
+        coeff_appdescr           = 11;
+        coeff_appauthor          = 12;
         coeff_apptags            = 8;
         coeff_appref             = 8;
-        coeff_appemph            = 12;
-        coeff_urlcompintoplist   = 3;
-        coeff_descrcompintoplist = 2;
-        coeff_prefer             = 15;
+        coeff_appemph            = 11;
         coeff_catindexof         = (mediatype == 
plasmaSearchQuery.CONTENTDOM_TEXT) ? 0 : 15;
         coeff_cathasimage        = (mediatype == 
plasmaSearchQuery.CONTENTDOM_IMAGE) ? 15 : 0;
         coeff_cathasaudio        = (mediatype == 
plasmaSearchQuery.CONTENTDOM_AUDIO) ? 15 : 0;
         coeff_cathasvideo        = (mediatype == 
plasmaSearchQuery.CONTENTDOM_VIDEO) ? 15 : 0;
         coeff_cathasapp          = (mediatype == 
plasmaSearchQuery.CONTENTDOM_APP) ? 15 : 0;
+        coeff_termfrequency      = 14;
+        coeff_urlcompintoplist   = 3;
+        coeff_descrcompintoplist = 2;
+        coeff_prefer             = 13;
     }
     
     public plasmaSearchRankingProfile(String prefix, String profile) {
@@ -172,6 +175,7 @@
             coeff_cathasaudio        = parseMap(coeff, CATHASAUDIO, 
coeff_cathasaudio);
             coeff_cathasvideo        = parseMap(coeff, CATHASVIDEO, 
coeff_cathasvideo);
             coeff_cathasapp          = parseMap(coeff, CATHASAPP, 
coeff_cathasapp);
+            coeff_termfrequency      = parseMap(coeff, TERMFREQUENCY, 
coeff_termfrequency);
             coeff_urlcompintoplist   = parseMap(coeff, URLCOMPINTOPLIST, 
coeff_urlcompintoplist);
             coeff_descrcompintoplist = parseMap(coeff, DESCRCOMPINTOPLIST, 
coeff_descrcompintoplist);
             coeff_prefer             = parseMap(coeff, PREFER, coeff_prefer);
@@ -227,6 +231,7 @@
         ext.put(prefix + CATHASAUDIO, Integer.toString(coeff_cathasaudio));
         ext.put(prefix + CATHASVIDEO, Integer.toString(coeff_cathasvideo));
         ext.put(prefix + CATHASAPP, Integer.toString(coeff_cathasapp));
+        ext.put(prefix + TERMFREQUENCY, Integer.toString(coeff_termfrequency));
         return ext;
     }
     

Modified: trunk/source/de/anomic/yacy/yacyClient.java
===================================================================
--- trunk/source/de/anomic/yacy/yacyClient.java 2008-01-28 20:08:32 UTC (rev 
4412)
+++ trunk/source/de/anomic/yacy/yacyClient.java 2008-01-28 23:41:39 UTC (rev 
4413)
@@ -557,7 +557,7 @@
         // store remote result to local result container
         synchronized (containerCache) {
             // insert one container into the search result buffer
-            containerCache.insert(container[0], false); // one is enough
+            containerCache.insertRanked(container[0], false); // one is enough
             
             // integrate remote topwords
             String references = (String) result.get("references");

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

Antwort per Email an