public override bool Equals(object other) { if (!(other is FieldAndShardVersion)) { return(false); } FieldAndShardVersion other_ = (FieldAndShardVersion)other; return(field.Equals(other_.field, StringComparison.Ordinal) && version == other_.version && nodeID == other_.nodeID); }
public override bool Equals(object _other) { if (!(_other is FieldAndShardVersion)) { return(false); } FieldAndShardVersion other = (FieldAndShardVersion)_other; return(Field.Equals(other.Field, StringComparison.Ordinal) && Version == other.Version && NodeID == other.NodeID); }
public override CollectionStatistics CollectionStatistics(string field) { // TODO: we could compute this on init and cache, // since we are re-inited whenever any nodes have a // new reader long docCount = 0; long sumTotalTermFreq = 0; long sumDocFreq = 0; long maxDoc = 0; for (int nodeID = 0; nodeID < nodeVersions.Length; nodeID++) { FieldAndShardVersion key = new FieldAndShardVersion(nodeID, nodeVersions[nodeID], field); CollectionStatistics nodeStats; if (nodeID == MyNodeID) { nodeStats = base.CollectionStatistics(field); } else { outerInstance.collectionStatsCache.TryGetValue(key, out nodeStats); } if (nodeStats is null) { Console.WriteLine("coll stats myNodeID=" + MyNodeID + ": " + Collections.ToString(outerInstance.collectionStatsCache.Keys)); } // Collection stats are pre-shared on reopen, so, // we better not have a cache miss: if (Debugging.AssertsEnabled) { Debugging.Assert(nodeStats != null, "myNodeID={0} nodeID={1} version={2} field={3}", MyNodeID, nodeID, nodeVersions[nodeID], field); } long nodeDocCount = nodeStats.DocCount; if (docCount >= 0 && nodeDocCount >= 0) { docCount += nodeDocCount; } else { docCount = -1; } long nodeSumTotalTermFreq = nodeStats.SumTotalTermFreq; if (sumTotalTermFreq >= 0 && nodeSumTotalTermFreq >= 0) { sumTotalTermFreq += nodeSumTotalTermFreq; } else { sumTotalTermFreq = -1; } long nodeSumDocFreq = nodeStats.SumDocFreq; if (sumDocFreq >= 0 && nodeSumDocFreq >= 0) { sumDocFreq += nodeSumDocFreq; } else { sumDocFreq = -1; } if (Debugging.AssertsEnabled) { Debugging.Assert(nodeStats.MaxDoc >= 0); } maxDoc += nodeStats.MaxDoc; } return(new CollectionStatistics(field, maxDoc, docCount, sumTotalTermFreq, sumDocFreq)); }
public override CollectionStatistics CollectionStatistics(string field) { // TODO: we could compute this on init and cache, // since we are re-inited whenever any nodes have a // new reader long docCount = 0; long sumTotalTermFreq = 0; long sumDocFreq = 0; long maxDoc = 0; for (int nodeID = 0; nodeID < NodeVersions.Length; nodeID++) { FieldAndShardVersion key = new FieldAndShardVersion(nodeID, NodeVersions[nodeID], field); CollectionStatistics nodeStats; if (nodeID == MyNodeID) { nodeStats = base.CollectionStatistics(field); } else { nodeStats = OuterInstance.CollectionStatsCache[key]; } if (nodeStats == null) { Console.WriteLine("coll stats myNodeID=" + MyNodeID + ": " + OuterInstance.CollectionStatsCache.Keys); } // Collection stats are pre-shared on reopen, so, // we better not have a cache miss: Debug.Assert(nodeStats != null, "myNodeID=" + MyNodeID + " nodeID=" + nodeID + " version=" + NodeVersions[nodeID] + " field=" + field); long nodeDocCount = nodeStats.DocCount; if (docCount >= 0 && nodeDocCount >= 0) { docCount += nodeDocCount; } else { docCount = -1; } long nodeSumTotalTermFreq = nodeStats.SumTotalTermFreq; if (sumTotalTermFreq >= 0 && nodeSumTotalTermFreq >= 0) { sumTotalTermFreq += nodeSumTotalTermFreq; } else { sumTotalTermFreq = -1; } long nodeSumDocFreq = nodeStats.SumDocFreq; if (sumDocFreq >= 0 && nodeSumDocFreq >= 0) { sumDocFreq += nodeSumDocFreq; } else { sumDocFreq = -1; } Debug.Assert(nodeStats.MaxDoc >= 0); maxDoc += nodeStats.MaxDoc; } return(new CollectionStatistics(field, maxDoc, docCount, sumTotalTermFreq, sumDocFreq)); }