From f1528672b14156d4071864b1739694bd64bccdda Mon Sep 17 00:00:00 2001 From: orbiter Date: Fri, 24 Nov 2006 02:46:02 +0000 Subject: [PATCH] filtering of non-index pages during index-of search git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@3004 6c8d7289-2bf4-0310-a012-ef5d649a1542 --- source/de/anomic/kelondro/kelondroRow.java | 2 +- source/de/anomic/kelondro/kelondroRowSet.java | 2 +- source/de/anomic/plasma/plasmaSearchEvent.java | 13 ++++++++++++- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/source/de/anomic/kelondro/kelondroRow.java b/source/de/anomic/kelondro/kelondroRow.java index e302c046d..b00f3755c 100644 --- a/source/de/anomic/kelondro/kelondroRow.java +++ b/source/de/anomic/kelondro/kelondroRow.java @@ -162,7 +162,7 @@ public class kelondroRow { } public Entry(byte[] rowinstance, int start, int length) { - assert objectsize == length; + assert objectsize == length : "objectsize = " + objectsize + ", length = " + length; this.rowinstance = new byte[objectsize]; int ll = Math.min(objectsize, length); System.arraycopy(rowinstance, start, this.rowinstance, 0, ll); diff --git a/source/de/anomic/kelondro/kelondroRowSet.java b/source/de/anomic/kelondro/kelondroRowSet.java index 9d52cd315..f7b3f0128 100644 --- a/source/de/anomic/kelondro/kelondroRowSet.java +++ b/source/de/anomic/kelondro/kelondroRowSet.java @@ -190,7 +190,7 @@ public class kelondroRowSet extends kelondroRowCollection implements kelondroInd Integer nxt = (Integer) removeMarker.firstKey(); removeMarker.remove(nxt); int idx = nxt.intValue(); - assert (idx < sortBound); + assert (idx < sortBound) : "idx = " + idx + ", sortBound = " + sortBound; int d = 1; byte[] a; while (removeMarker.size() > 0) { diff --git a/source/de/anomic/plasma/plasmaSearchEvent.java b/source/de/anomic/plasma/plasmaSearchEvent.java index 8043bc0bd..1d0c45ec3 100644 --- a/source/de/anomic/plasma/plasmaSearchEvent.java +++ b/source/de/anomic/plasma/plasmaSearchEvent.java @@ -395,7 +395,18 @@ public final class plasmaSearchEvent extends Thread implements Runnable { // find the url entry page = urlStore.load(entry.urlHash(), entry); // add a result - if (page != null) acc.addResult(page, preranking); + if (page != null) { + if ((!(query.constraint.equals(plasmaSearchQuery.catchall_constraint))) && + (query.constraint.get(plasmaCondenser.flag_cat_indexof)) && + (!(page.comp().descr().startsWith("Index of")))) { + log.logFine("filtered out " + page.comp().url().toString()); + // filter out bad results + Iterator wi = query.queryHashes.iterator(); + while (wi.hasNext()) wordIndex.removeEntry((String) wi.next(), page.hash(), true); + } else { + acc.addResult(page, preranking); + } + } } } catch (kelondroException ee) { serverLog.logSevere("PLASMA", "Database Failure during plasmaSearch.order: " + ee.getMessage(), ee);