Exemple #1
0
        public async Task <IList <long> > ExecuteWrite(string collectionName, IEnumerable <IDictionary> documents)
        {
            _timer.Restart();

            IList <long> docIds;

            using (var write = _sessionFactory.CreateWriteSession(collectionName, collectionName.ToHash()))
            {
                docIds = await write.Write(documents);
            }

            if (docIds.Count > 0)
            {
                var skip = (int)docIds[0] - 1;
                var take = docIds.Count;

                using (var docs = _sessionFactory.CreateDocumentStreamSession(collectionName, collectionName.ToHash()))
                    using (var index = _sessionFactory.CreateIndexSession(collectionName, collectionName.ToHash()))
                    {
                        foreach (var doc in docs.ReadDocs(skip, take))
                        {
                            index.EmbedTerms(doc);
                        }
                    }
            }

            this.Log("executed {0} write+index job in {1}", collectionName, _timer.Elapsed);

            return(docIds);
        }