예제 #1
0
        static void test_2()
        {
            var dataFileName     = @"E:\GeoDB\DiskSearchEngine\data\fusking.rotter.data";
            var dataFileEncoding = Encoding.UTF7; //Encoding.Unicode; //Encoding.UTF8; //

            create_datafile_in_need_encoding(dataFileName, dataFileEncoding);


            //var indexHeader = HashtableIndexer.GetIndexHeaderByDataFile( dataFileName );

            var allRecordCountInDataFile = HashtableEngineHelper.CalulateAllRecordCountInDataFile(dataFileName, dataFileEncoding);

            HashtableIndexer.BuildIndex(dataFileName, dataFileEncoding, allRecordCountInDataFile.NearestPrimeNumber(), HashtableEngineHelper.NormlizeText);

            using (var searcher = new HashtableSearcher(dataFileName, HashtableEngineHelper.NormlizeText))
            {
                var max_len = geo_names.Max(_ => _.Length);

                searcher.IsExists1("кызыл-орда", max_len);
                foreach (var geo_name in geo_names)
                {
                    searcher.IsExists1(geo_name, max_len);
                }
            }
        }
예제 #2
0
        static void test_GetIndexHeaderByDataFile(string dataFileName)
        {
            //test get index info
            try
            {
                var indexHeader = HashtableIndexer.GetIndexHeaderByDataFile(dataFileName);

                Console.WriteLine(indexHeader.ToString());
            }
            catch (Exception e)
            {
                Console.WriteLine("HashtableIndexer.GetIndexHeaderByDataFile( '" + dataFileName + "') => " + e.Message + Environment.NewLine);
            }
        }
예제 #3
0
        static void test_BuildIndex32OnDisk(string dataFileName, Encoding dataFileEncoding)
        {
            Console.WriteLine("Begin calulate record count in data file...");
            var allRecordCountInDataFile = HashtableEngineHelper.CalulateAllRecordCountInDataFile(dataFileName, dataFileEncoding);

            Console.WriteLine("End calulate record count in data file: " + allRecordCountInDataFile + Environment.NewLine);


            //test Indexing
            Console.WriteLine("Begin build int32-index on disk...");
            var sw = Stopwatch.StartNew();

            HashtableIndexer.BuildIndexInt32OnDisk(dataFileName, dataFileEncoding, allRecordCountInDataFile.NearestPrimeNumber(), HashtableEngineHelper.NormlizeText);

            Console.WriteLine("End build int32-index on disk, elapsed: " + sw.Elapsed + Environment.NewLine);
        }
예제 #4
0
        static void test_BuildIndex64(string dataFileName, Encoding dataFileEncoding)
        {
            Console.WriteLine("Begin calulate record count in data file...");
            var allRecordCountInDataFile = HashtableEngineHelper.CalulateAllRecordCountInDataFile(dataFileName, dataFileEncoding);

            Console.WriteLine("End calulate record count in data file: " + allRecordCountInDataFile + Environment.NewLine);


            //test Indexing
            Console.WriteLine("Begin build int64-index...");
            var sw = Stopwatch.StartNew();

            HashtableIndexer.BuildIndex(dataFileName, dataFileEncoding, allRecordCountInDataFile
                                        //.RoundBeforeGreaterBorder()
                                        .NearestPrimeNumber(), HashtableEngineHelper.NormlizeText);
            //HashtableIndexer.BuildIndex( dataFileName, dataFileEncoding, 3000000 );

            Console.WriteLine("End build int64-index, elapsed: " + sw.Elapsed + Environment.NewLine);
        }
예제 #5
0
        static void test_BuildIndexAutomatic(string dataFileName, Encoding dataFileEncoding)
        {
            /*
             * Console.WriteLine( "Begin calulate record count in data file..." );
             * var allRecordCountInDataFile = HashtableEngineHelper.CalulateAllRecordCountInDataFile( dataFileName, dataFileEncoding );
             * Console.WriteLine( "End calulate record count in data file: " + allRecordCountInDataFile + Environment.NewLine );
             *
             * //test automatic-Indexing
             * Console.WriteLine( "Begin build automatic-index...");
             * Console.WriteLine( "Hash-table size: " + allRecordCountInDataFile.NearestPrimeNumber() );
             * var sw = Stopwatch.StartNew();
             *
             * HashtableIndexer.BuildIndexAutomatic( dataFileName, dataFileEncoding, allRecordCountInDataFile.NearestPrimeNumber() );
             *
             * Console.WriteLine( "End build automatic-index, elapsed: " + sw.Elapsed + Environment.NewLine );
             */

            Console.WriteLine("Begin build automatic-index...");
            var sw = Stopwatch.StartNew();

            HashtableIndexer.BuildIndexAutomatic(dataFileName, dataFileEncoding, HashtableEngineHelper.NormlizeText);

            Console.WriteLine("End build automatic-index, elapsed: " + sw.Elapsed + Environment.NewLine);
        }