From 8747a8be7aa0ae2854a4cebd42b95e79f0ac99e4 Mon Sep 17 00:00:00 2001 From: vng Date: Wed, 29 Feb 2012 18:07:49 +0300 Subject: [PATCH] [search] Do not generate index after downloading if it's already exist. --- generator/generator_tool/generator_tool.cpp | 2 +- indexer/search_index_builder.cpp | 5 ++++- indexer/search_index_builder.hpp | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/generator/generator_tool/generator_tool.cpp b/generator/generator_tool/generator_tool.cpp index 62b4bc2730..39c26e40aa 100644 --- a/generator/generator_tool/generator_tool.cpp +++ b/generator/generator_tool/generator_tool.cpp @@ -212,7 +212,7 @@ int main(int argc, char ** argv) { LOG(LINFO, ("Generating search index for ", datFile)); - if (!indexer::BuildSearchIndexFromDatFile(country + DATA_FILE_EXTENSION)) + if (!indexer::BuildSearchIndexFromDatFile(country + DATA_FILE_EXTENSION, true)) LOG(LCRITICAL, ("Error generating search index.")); } } diff --git a/indexer/search_index_builder.cpp b/indexer/search_index_builder.cpp index 4068d62d75..f1bfccc649 100644 --- a/indexer/search_index_builder.cpp +++ b/indexer/search_index_builder.cpp @@ -295,7 +295,7 @@ void indexer::BuildSearchIndex(FeaturesVector const & featuresV, Writer & writer FileWriter::DeleteFileX(tmpFilePath); } -bool indexer::BuildSearchIndexFromDatFile(string const & fName) +bool indexer::BuildSearchIndexFromDatFile(string const & fName, bool forceRebuild) { LOG(LINFO, ("Start building search index. Bits = ", search::POINT_CODING_BITS)); @@ -308,6 +308,9 @@ bool indexer::BuildSearchIndexFromDatFile(string const & fName) { FilesContainerR readCont(datFile); + if (!forceRebuild && readCont.IsReaderExist(SEARCH_INDEX_FILE_TAG)) + return true; + feature::DataHeader header; header.Load(readCont.GetReader(HEADER_FILE_TAG)); diff --git a/indexer/search_index_builder.hpp b/indexer/search_index_builder.hpp index 4c072d5ee6..baaed3d6c8 100644 --- a/indexer/search_index_builder.hpp +++ b/indexer/search_index_builder.hpp @@ -8,5 +8,5 @@ namespace indexer { void BuildSearchIndex(FeaturesVector const & featuresVector, Writer & writer, string const & tmpFilePath); - bool BuildSearchIndexFromDatFile(string const & fName); + bool BuildSearchIndexFromDatFile(string const & fName, bool forceRebuild = false); } // namespace indexer