Пример #1
0
        static int Main(string[] args)
        {
            if (args.Length != 2)
            {
                PrintHelp();
                return(-1);
            }
            var inputFolder  = args[0];
            var outputFolder = args[1];

            Console.WriteLine($"Input: {Path.GetFullPath(inputFolder)}");
            Console.WriteLine($"Output: {Path.GetFullPath(outputFolder)}");
            var index             = new YngdiengIndex();
            var hanziVariantsUtil = new HanziVariantsUtil(inputFolder);
            var aggregator        = new DocumentAggregator();

            var ciklin = new CreateCikLinDocumentsAction(Path.Combine(inputFolder, "ciklin.csv"), outputFolder, hanziVariantsUtil).Run();
            var dfd    = new CreateDFDDocumentsAction(Path.Combine(inputFolder, "DFDCharacters.csv"), outputFolder, hanziVariantsUtil).Run();
            var feng   = new CreateFengDocumentsAction(Path.Combine(inputFolder, "feng.txt"), outputFolder).Run();

            index.Documents.Add(ciklin);
            index.Documents.Add(dfd);
            index.FengDocuments.Add(feng);
            foreach (var d in ciklin)
            {
                aggregator.Add(d);
            }
            foreach (var d in dfd)
            {
                aggregator.Add(d);
            }
            index.AggregatedDocument.AddRange(aggregator.GetAggregatedDocuments());

            using (var outputFile = File.Create(Path.Combine(outputFolder, "yngdieng_index.bin")))
            {
                index.WriteTo(outputFile);
            }
            return(0);
        }
Пример #2
0
 public CreateCikLinDocumentsAction(string cikLinCsvFile, string outputFolder, HanziVariantsUtil hanziVariantsUtil)
 {
     _cikLinCsvFile     = cikLinCsvFile;
     _outputFolder      = outputFolder;
     _hanziVariantsUtil = hanziVariantsUtil;
 }
Пример #3
0
 public CreateDFDDocumentsAction(string dfdCharactersFile, string outputFolder, HanziVariantsUtil hanziVariantsUtil)
 {
     _dfdCharactersFile = dfdCharactersFile;
     _outputFolder      = outputFolder;
     _hanziVariantsUtil = hanziVariantsUtil;
 }
Пример #4
0
        public int Run()
        {
            Console.WriteLine($"Input: {Path.GetFullPath(inputFolder)}");
            Console.WriteLine($"Output: {Path.GetFullPath(outputFolder)}");
            var index             = new YngdiengIndex();
            var hanziVariantsUtil = new HanziVariantsUtil(inputFolder);
            var aggregator        = new HistoricalDocAggregator();

            Console.WriteLine($"Loading zingzeu_words...");
            var zingzeuWords =
                new ZingzeuWordsLoader(Path.Combine(inputFolder, "zingzeu_words.txt")).Run();

            Console.WriteLine($"Loading CikLinBekIn...");
            var ciklin = new CikLingLoader(Path.Combine(inputFolder, "CikLinBekIn.csv"),
                                           Path.Combine(inputFolder, "cikling.csv"),
                                           Path.Combine(inputFolder, "cikling_mapping.csv"),
                                           outputFolder,
                                           hanziVariantsUtil)
                         .Run();

            Console.WriteLine($"Loading DFD...");
            var dfd = new DFDLoader(Path.Combine(inputFolder, "DFDCharacters.csv"),
                                    outputFolder,
                                    hanziVariantsUtil)
                      .Run();

            Console.WriteLine($"Loading Feng...");
            var feng = new FengLoader(Path.Combine(inputFolder, "feng.txt"),
                                      Path.Combine(inputFolder, "feng_zeu_mapping.txt"),
                                      outputFolder,
                                      openCcClient)
                       .Run();

            Console.WriteLine($"Loading Contrib...");
            var contrib = new ContribLoader(Path.Combine(inputFolder, "contrib.tsv")).Run();

            Console.WriteLine($"Loading Redirects...");
            var redirects = new RedirectsLoader(Path.Combine(inputFolder, "redirects.txt")).Run();

            index.Version = versionTag;
            index.FengDocuments.Add(feng);
            foreach (var d in ciklin)
            {
                aggregator.Add(d);
            }
            foreach (var d in dfd)
            {
                aggregator.Add(d);
            }
            index.HistoricalDocuments.AddRange(aggregator.GetHistoricalDocuments());

            index.YngdiengDocuments.AddRange(YngdiengDocumentUtil.Combine(
                                                 zingzeuWords, index.HistoricalDocuments, feng, contrib));

            index.DocIdRedirections.Add(redirects);

            var debugJsonOutput = index.ToString();

            File.WriteAllText(Path.Combine(outputFolder, "index_debug.json"), debugJsonOutput);

            using (var outputFile = File.Create(Path.Combine(outputFolder, "yngdieng_index.bin")))
            {
                index.WriteTo(outputFile);
            }

            CreateLuceneIndex(index);
            return(0);
        }