diff --git a/htroot/api/status_p.java b/htroot/api/status_p.java index 4c209e817..2a3a3ad9f 100644 --- a/htroot/api/status_p.java +++ b/htroot/api/status_p.java @@ -72,8 +72,11 @@ public class status_p { // index size prop.putNum("urlpublictextSize", segment.fulltext().collectionSize()); - prop.putNum("webgraphSize", segment.fulltext().webgraphSize()); + prop.putNum("urlpublictextSegmentCount", segment.fulltext().getDefaultConnector().getSegmentCount()); + prop.putNum("webgraphSize", segment.fulltext().writeToWebgraph() ? segment.fulltext().webgraphSize() : 0); + prop.putNum("webgraphSegmentCount", segment.fulltext().writeToWebgraph() ? segment.fulltext().getWebgraphConnector().getSegmentCount() : 0); prop.putNum("rwipublictextSize", segment.RWICount()); + prop.putNum("rwipublictextSegmentCount", segment.RWISegmentCount()); // loader queue prop.putNum("loaderSize", sb.crawlQueues.workerSize()); diff --git a/htroot/api/status_p.xml b/htroot/api/status_p.xml index b4d9ef76a..f69b934a1 100644 --- a/htroot/api/status_p.xml +++ b/htroot/api/status_p.xml @@ -21,8 +21,11 @@ #[urlpublictextSize]# + #[urlpublictextSegmentCount]# #[webgraphSize]# - #[rwipublictextSize]# + #[webgraphSegmentCount]# + #[rwipublictextSize]# + #[rwipublictextSegmentCount]# diff --git a/source/net/yacy/cora/federate/solr/connector/CachedSolrConnector.java b/source/net/yacy/cora/federate/solr/connector/CachedSolrConnector.java index 624fa5138..c96fe2d33 100644 --- a/source/net/yacy/cora/federate/solr/connector/CachedSolrConnector.java +++ b/source/net/yacy/cora/federate/solr/connector/CachedSolrConnector.java @@ -306,4 +306,10 @@ public class CachedSolrConnector extends AbstractSolrConnector implements SolrCo public void optimize(int maxSegments) { this.solr.optimize(maxSegments); } + + @Override + public int getSegmentCount() { + return this.solr.getSegmentCount(); + } + } \ No newline at end of file diff --git a/source/net/yacy/cora/federate/solr/connector/ConcurrentUpdateSolrConnector.java b/source/net/yacy/cora/federate/solr/connector/ConcurrentUpdateSolrConnector.java index a4edab1fe..89d0faa4d 100644 --- a/source/net/yacy/cora/federate/solr/connector/ConcurrentUpdateSolrConnector.java +++ b/source/net/yacy/cora/federate/solr/connector/ConcurrentUpdateSolrConnector.java @@ -246,6 +246,11 @@ public class ConcurrentUpdateSolrConnector implements SolrConnector { this.connector.optimize(maxSegments); } + @Override + public int getSegmentCount() { + return this.connector.getSegmentCount(); + } + @Override public void close() { ensureAliveDeletionHandler(); diff --git a/source/net/yacy/cora/federate/solr/connector/MirrorSolrConnector.java b/source/net/yacy/cora/federate/solr/connector/MirrorSolrConnector.java index dd03b3f9c..76f238c47 100644 --- a/source/net/yacy/cora/federate/solr/connector/MirrorSolrConnector.java +++ b/source/net/yacy/cora/federate/solr/connector/MirrorSolrConnector.java @@ -98,6 +98,13 @@ public class MirrorSolrConnector extends AbstractSolrConnector implements SolrCo if (this.solr0 != null) this.solr0.optimize(maxSegments); if (this.solr1 != null) this.solr1.optimize(maxSegments); } + + @Override + public int getSegmentCount() { + int s0 = this.solr0 == null ? 0 : this.solr0.getSegmentCount(); + int s1 = this.solr1 == null ? 0 : this.solr1.getSegmentCount(); + return Math.max(s0, s1); + } @Override public synchronized void close() { diff --git a/source/net/yacy/cora/federate/solr/connector/SolrConnector.java b/source/net/yacy/cora/federate/solr/connector/SolrConnector.java index f429f78ef..5d58d1c9e 100644 --- a/source/net/yacy/cora/federate/solr/connector/SolrConnector.java +++ b/source/net/yacy/cora/federate/solr/connector/SolrConnector.java @@ -54,6 +54,12 @@ public interface SolrConnector extends Iterable /* Iterable of document */ public void optimize(int maxSegments); + /** + * ask the solr subsystem about it's segment number + * @return the segment count, which corresponds to the number of files for an index + */ + public int getSegmentCount(); + /** * close the server connection */ diff --git a/source/net/yacy/kelondro/rwi/IndexCell.java b/source/net/yacy/kelondro/rwi/IndexCell.java index 78e54b7c2..7549a98ac 100644 --- a/source/net/yacy/kelondro/rwi/IndexCell.java +++ b/source/net/yacy/kelondro/rwi/IndexCell.java @@ -595,6 +595,10 @@ public final class IndexCell extends AbstractBu return m; } + public int getSegmentCount() { + return this.array.entries(); + } + @Override public int minMem() { return 10 * 1024 * 1024; diff --git a/source/net/yacy/search/index/Segment.java b/source/net/yacy/search/index/Segment.java index a4889b61b..2d9af30f6 100644 --- a/source/net/yacy/search/index/Segment.java +++ b/source/net/yacy/search/index/Segment.java @@ -374,6 +374,11 @@ public class Segment { if (this.termIndex == null) return 0; return this.termIndex.sizesMax(); } + + public long RWISegmentCount() { + if (this.termIndex == null) return 0; + return this.termIndex.getSegmentCount(); + } public int RWIBufferCount() { if (this.termIndex == null) return 0;