diff --git a/concordia-server/searcher_controller.cpp b/concordia-server/searcher_controller.cpp index 0b4af3b..25c0989 100644 --- a/concordia-server/searcher_controller.cpp +++ b/concordia-server/searcher_controller.cpp @@ -28,28 +28,20 @@ void SearcherController::simpleSearch(rapidjson::Writer // tmId should point to non-lemmatized memory boost::ptr_map::iterator it = _concordiasMap->find(tmId); if (it != _concordiasMap->end()) { - Logger::logString("simple search for pattern", pattern); TokenizedSentence tokenizedPattern = it->second->tokenize(pattern, false, false); - Logger::logInt("queried tm", tmId); Tm tm = _tmDAO.getTm(tmId); - Logger::logInt("paired tm", tm.getPairedTmId()); LemmatizerResult lemmatizerResult = _lemmatizerFacade->lemmatizeSentence( tm.getSourceLanguageCode(), tokenizedPattern.getTokenizedSentence()); std::string pattern = tokenizedPattern.getTokenizedSentence(); - Logger::logString("tokenized pattern", tokenizedPattern.getTokenizedSentence()); - Logger::logString("lemmatized pattern", lemmatizerResult.getLemmatizedSentence()); if (lemmatizerResult.isFirstLemmatized()) { - Logger::log("searching in paired memory"); // search in lemmatized memory it = _concordiasMap->find(tm.getPairedTmId()); pattern = lemmatizerResult.getLemmatizedSentence(); - Logger::logString("Changing pattern to lemmatized", pattern); if (it == _concordiasMap->end()) { JsonGenerator::signalError(jsonWriter, "paired tm not found!"); return; } } - Logger::logString("Final pattern", pattern); SimpleSearchResult result = _unitDAO.getSimpleSearchResult( it->second->simpleSearch(pattern, true)); jsonWriter.StartObject(); @@ -68,11 +60,23 @@ void SearcherController::fullSearch(rapidjson::Writer & const int tmId, const int limit, const int offset) { - /* + // tmId should point to non-lemmatized memory boost::ptr_map::iterator it = _concordiasMap->find(tmId); if (it != _concordiasMap->end()) { TokenizedSentence tokenizedPattern = it->second->tokenize(pattern, false, false); - pattern = _lemmatizerFacade->lemmatizeIfNeeded(tokenizedPattern.getTokenizedSentence(), tmId); + Tm tm = _tmDAO.getTm(tmId); + LemmatizerResult lemmatizerResult = _lemmatizerFacade->lemmatizeSentence( + tm.getSourceLanguageCode(), tokenizedPattern.getTokenizedSentence()); + std::string pattern = tokenizedPattern.getTokenizedSentence(); + if (lemmatizerResult.isFirstLemmatized()) { + // search in lemmatized memory + it = _concordiasMap->find(tm.getPairedTmId()); + pattern = lemmatizerResult.getLemmatizedSentence(); + if (it == _concordiasMap->end()) { + JsonGenerator::signalError(jsonWriter, "paired tm not found!"); + return; + } + } FullSearchResult result = _unitDAO.getFullSearchResult(it->second->fullSearch(pattern, limit, offset, true), tokenizedPattern.getTokens().size()); jsonWriter.StartObject(); jsonWriter.String("status"); @@ -83,7 +87,6 @@ void SearcherController::fullSearch(rapidjson::Writer & } else { JsonGenerator::signalError(jsonWriter, "no such tm!"); } - */ } void SearcherController::lexiconSearch(rapidjson::Writer & jsonWriter, diff --git a/concordia-server/searcher_controller.hpp b/concordia-server/searcher_controller.hpp index f8a3adc..48904ce 100644 --- a/concordia-server/searcher_controller.hpp +++ b/concordia-server/searcher_controller.hpp @@ -2,6 +2,7 @@ #define SEARCHER_CONTROLLER_HDR #include +#include #include #include #include @@ -48,7 +49,6 @@ public: const std::vector & intervals, const int tmId); private: - std::string _substrUTF8(std::string source, int start, int length); boost::shared_ptr > _concordiasMap;