Exemple #1
0
        public void DumpAllReferancesToCSV(StreamWriter writer, int numberOfSampleDocs)
        {
            Api.JetSetCurrentIndex(session, IndexedDocumentsReferences, "by_key");
            Api.JetMove(session, IndexedDocumentsReferences, JET_Move.First, MoveGrbit.None);
            var keysToRef = new Dictionary <string, DocCountWithSampleDocIds>();

            do
            {
                var key = Api.RetrieveColumnAsString(session, IndexedDocumentsReferences,
                                                     tableColumnsCache.IndexedDocumentsReferencesColumns["key"], Encoding.Unicode);
                DocCountWithSampleDocIds docData;
                if (keysToRef.TryGetValue(key, out docData) == false)
                {
                    keysToRef[key] = docData = new DocCountWithSampleDocIds()
                    {
                        Count         = 0,
                        SampleDocsIds = new HashSet <string>(StringComparer.OrdinalIgnoreCase)
                    };
                }
                var item = Api.RetrieveColumnAsString(session, IndexedDocumentsReferences,
                                                      tableColumnsCache.IndexedDocumentsReferencesColumns["ref"], Encoding.Unicode);
                if (docData.Count < numberOfSampleDocs)
                {
                    docData.SampleDocsIds.Add(item);
                }
                docData.Count++;
            } while (Api.TryMoveNext(session, IndexedDocumentsReferences));

            foreach (var kvp in keysToRef.OrderByDescending(x => x.Value.Count))
            {
                writer.WriteLine("{0},{1},\"{2}\"", kvp.Value.Count, kvp.Key, string.Join(", ", kvp.Value.SampleDocsIds));
            }
        }
        public void DumpAllReferancesToCSV(StreamWriter writer, int numberOfSampleDocs)
        {
            var documentReferencesByKey = tableStorage.DocumentReferences.GetIndex(Tables.DocumentReferences.Indices.ByKey);

            using (var docRefIterator = documentReferencesByKey.Iterate(Snapshot, writeBatch.Value))
            {
                if (!docRefIterator.Seek(Slice.BeforeAllKeys))
                {
                    // ref table empty
                    return;
                }
                var keysToRef = new Dictionary <string, DocCountWithSampleDocIds>();
                do
                {
                    using (var iterator = documentReferencesByKey.MultiRead(Snapshot, (Slice)CreateKey(docRefIterator.CurrentKey)))
                    {
                        if (!iterator.Seek(Slice.BeforeAllKeys))
                        {
                            break;
                        }
                        do
                        {
                            ushort version;
                            var    value = LoadStruct(tableStorage.DocumentReferences, iterator.CurrentKey, writeBatch.Value, out version);
                            if (value == null)
                            {
                                continue;
                            }
                            var currentKeyStr = docRefIterator.CurrentKey.ToString();
                            DocCountWithSampleDocIds docData;
                            if (keysToRef.TryGetValue(currentKeyStr, out docData) == false)
                            {
                                keysToRef[currentKeyStr] = docData = new DocCountWithSampleDocIds
                                {
                                    Count         = 0,
                                    SampleDocsIds = new HashSet <string>(StringComparer.OrdinalIgnoreCase)
                                };
                            }
                            if (docData.Count < numberOfSampleDocs)
                            {
                                docData.SampleDocsIds.Add(value.ReadString(DocumentReferencesFields.Reference));
                            }
                            docData.Count++;
                        } while (iterator.MoveNext());
                    }
                } while (docRefIterator.MoveNext());

                foreach (var kvp in keysToRef.OrderByDescending(x => x.Value.Count))
                {
                    writer.WriteLine("{0},{1},\"{2}\"", kvp.Value.Count, kvp.Key, string.Join(", ", kvp.Value.SampleDocsIds));
                }
            }
        }
Exemple #3
0
        public void DumpAllReferancesToCSV(StreamWriter writer, int numberOfSampleDocs)
        {
	        Api.JetSetCurrentIndex(session, IndexedDocumentsReferences, "by_key");
	        Api.JetMove(session, IndexedDocumentsReferences, JET_Move.First, MoveGrbit.None);
	        var keysToRef = new Dictionary<string, DocCountWithSampleDocIds>();
	        do
	        {
		        var key = Api.RetrieveColumnAsString(session, IndexedDocumentsReferences,
			        tableColumnsCache.IndexedDocumentsReferencesColumns["key"], Encoding.Unicode);
				DocCountWithSampleDocIds docData;
				if (keysToRef.TryGetValue(key, out docData) == false)
		        {
					keysToRef[key] = docData = new DocCountWithSampleDocIds()
			        {
				        Count = 0,
				        SampleDocsIds = new HashSet<string>(StringComparer.OrdinalIgnoreCase)
			        };
		        }
		        var item = Api.RetrieveColumnAsString(session, IndexedDocumentsReferences,
			        tableColumnsCache.IndexedDocumentsReferencesColumns["ref"], Encoding.Unicode);
		        if (docData.Count < numberOfSampleDocs)
					docData.SampleDocsIds.Add(item);
		        docData.Count++;
	        } while (Api.TryMoveNext(session, IndexedDocumentsReferences));
	        
	        foreach (var kvp in keysToRef.OrderByDescending(x=>x.Value.Count))
	        {
		        writer.WriteLine("{0},{1},\"{2}\"", kvp.Value.Count, kvp.Key, string.Join(", ", kvp.Value.SampleDocsIds));
	        }
        }