*) Remove entries from AssortmentCluster before reinserting the rest into the ramCache

git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@1640 6c8d7289-2bf4-0310-a012-ef5d649a1542
pull/1/head
hermens 19 years ago
parent f9a45d23d9
commit 0b60b9bf51

@ -335,8 +335,11 @@ public final class plasmaWordIndex {
int removed = 0; int removed = 0;
removed += ramCache.removeEntries(wordHash, urlHashes, deleteComplete); removed += ramCache.removeEntries(wordHash, urlHashes, deleteComplete);
plasmaWordIndexEntryContainer container = assortmentCluster.removeFromAll(wordHash, -1); plasmaWordIndexEntryContainer container = assortmentCluster.removeFromAll(wordHash, -1);
if (container != null) this.addEntries(container, System.currentTimeMillis(), false); if (container != null) {
removed = backend.removeEntries(wordHash, urlHashes, deleteComplete); removed += container.removeEntries(wordHash, urlHashes, deleteComplete);
if (container.size() != 0) this.addEntries(container, System.currentTimeMillis(), false);
}
removed += backend.removeEntries(wordHash, urlHashes, deleteComplete);
return removed; return removed;
} }

@ -309,7 +309,7 @@ public final class plasmaWordIndexCache implements plasmaWordIndexInterface {
synchronized (cache) { synchronized (cache) {
plasmaWordIndexEntryContainer c = (plasmaWordIndexEntryContainer) deleteContainer(wordHash); plasmaWordIndexEntryContainer c = (plasmaWordIndexEntryContainer) deleteContainer(wordHash);
if (c != null) { if (c != null) {
for (int i = 0; i < urlHashes.length; i++) count += (c.remove(urlHashes[i]) == null) ? 0 : 1; count = c.removeEntries(wordHash, urlHashes, deleteComplete);
if (c.size() != 0) this.addEntries(c, System.currentTimeMillis(), false); if (c.size() != 0) this.addEntries(c, System.currentTimeMillis(), false);
} }
} }

@ -144,7 +144,14 @@ public final class plasmaWordIndexEntryContainer implements Comparable {
public plasmaWordIndexEntry remove(String urlHash) { public plasmaWordIndexEntry remove(String urlHash) {
return (plasmaWordIndexEntry) container.remove(urlHash); return (plasmaWordIndexEntry) container.remove(urlHash);
} }
public int removeEntries(String wordHash, String[] urlHashes, boolean deleteComplete) {
if (!wordHash.equals(this.wordHash)) return 0;
int count = 0;
for (int i = 0; i < urlHashes.length; i++) count += (remove(urlHashes[i]) == null) ? 0 : 1;
return count;
}
public Iterator entries() { public Iterator entries() {
// returns an iterator of plasmaWordIndexEntry objects // returns an iterator of plasmaWordIndexEntry objects
return container.values().iterator(); return container.values().iterator();

Loading…
Cancel
Save