Ejemplo n.º 1
0
        static void Rewrite(string[] args)
        {
            var    take = int.MaxValue;
            var    skip = 0;
            string pk   = null;
            bool   gzip = false;
            bool   lz   = false;
            string dir  = null;

            if (Array.IndexOf(args, "--take") > 0)
            {
                take = int.Parse(args[Array.IndexOf(args, "--take") + 1]);
            }
            if (Array.IndexOf(args, "--skip") > 0)
            {
                skip = int.Parse(args[Array.IndexOf(args, "--skip") + 1]);
            }
            if (Array.IndexOf(args, "--pk") > 0)
            {
                pk = args[Array.IndexOf(args, "--pk") + 1];
            }
            if (Array.IndexOf(args, "--gzip") > 0)
            {
                gzip = true;
            }
            if (Array.IndexOf(args, "--lz") > 0)
            {
                lz = true;
            }
            if (Array.IndexOf(args, "--dir") > 0)
            {
                dir = args[Array.IndexOf(args, "--dir") + 1];
            }

            var compression = gzip ? Compression.GZip : lz ? Compression.Lz : Compression.NoCompression;
            var fileName    = args[Array.IndexOf(args, "--file") + 1];

            Console.WriteLine("rewriting...");

            var writeTimer = new Stopwatch();

            writeTimer.Start();

            using (var documents = new RDocStream(fileName, pk, skip, take))
                using (var upsert = new UpsertTransaction(dir, new Analyzer(), compression, documents))
                {
                    upsert.Write();
                }

            Console.WriteLine("write operation took {0}", writeTimer.Elapsed);
        }
Ejemplo n.º 2
0
        static void Export(string[] args)
        {
            var take = int.MaxValue;
            var skip = 0;

            if (Array.IndexOf(args, "--take") > 0)
            {
                take = int.Parse(args[Array.IndexOf(args, "--take") + 1]);
            }
            if (Array.IndexOf(args, "--skip") > 0)
            {
                skip = int.Parse(args[Array.IndexOf(args, "--skip") + 1]);
            }

            var sourceFileName = args[Array.IndexOf(args, "--source-file") + 1];
            var targetFileName = args[Array.IndexOf(args, "--target-file") + 1];

            var dir     = Path.GetDirectoryName(sourceFileName);
            var version = Path.GetFileNameWithoutExtension(sourceFileName);
            var ix      = IxInfo.Load(Path.Combine(dir, version + ".ix"));

            Console.WriteLine("migrating...");

            var writeTimer = new Stopwatch();

            writeTimer.Start();

            using (var outStream = new FileStream(targetFileName, FileMode.Create))
                using (var jsonWriter = new StreamWriter(outStream, Encoding.UTF8))
                    using (var documents = new RDocStream(sourceFileName, ix.PrimaryKeyFieldName, skip, take))
                    {
                        jsonWriter.WriteLine("[");

                        foreach (var document in documents.ReadSource())
                        {
                            var dic  = document.Fields.ToDictionary(x => x.Key, y => y.Value.Value);
                            var json = JsonConvert.SerializeObject(dic, Formatting.None);
                            jsonWriter.WriteLine(json);
                        }

                        jsonWriter.Write("]");
                    }

            Console.WriteLine("write operation took {0}", writeTimer.Elapsed);
        }