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;