diff options
Diffstat (limited to 'icing/index/string-section-indexing-handler.cc')
-rw-r--r-- | icing/index/string-section-indexing-handler.cc | 57 |
1 files changed, 3 insertions, 54 deletions
diff --git a/icing/index/string-section-indexing-handler.cc b/icing/index/string-section-indexing-handler.cc index 69b8889..8b20d04 100644 --- a/icing/index/string-section-indexing-handler.cc +++ b/icing/index/string-section-indexing-handler.cc @@ -21,15 +21,12 @@ #include "icing/text_classifier/lib3/utils/base/status.h" #include "icing/text_classifier/lib3/utils/base/statusor.h" -#include "icing/absl_ports/canonical_errors.h" #include "icing/index/index.h" -#include "icing/legacy/core/icing-string-util.h" #include "icing/proto/logging.pb.h" #include "icing/proto/schema.pb.h" #include "icing/schema/section.h" #include "icing/store/document-id.h" #include "icing/transform/normalizer.h" -#include "icing/util/clock.h" #include "icing/util/logging.h" #include "icing/util/status-macros.h" #include "icing/util/tokenized-document.h" @@ -39,35 +36,18 @@ namespace lib { /* static */ libtextclassifier3::StatusOr< std::unique_ptr<StringSectionIndexingHandler>> -StringSectionIndexingHandler::Create(const Clock* clock, - const Normalizer* normalizer, +StringSectionIndexingHandler::Create(const Normalizer* normalizer, Index* index) { - ICING_RETURN_ERROR_IF_NULL(clock); ICING_RETURN_ERROR_IF_NULL(normalizer); ICING_RETURN_ERROR_IF_NULL(index); return std::unique_ptr<StringSectionIndexingHandler>( - new StringSectionIndexingHandler(clock, normalizer, index)); + new StringSectionIndexingHandler(normalizer, index)); } libtextclassifier3::Status StringSectionIndexingHandler::Handle( const TokenizedDocument& tokenized_document, DocumentId document_id, - bool recovery_mode, PutDocumentStatsProto* put_document_stats) { - std::unique_ptr<Timer> index_timer = clock_.GetNewTimer(); - - if (index_.last_added_document_id() != kInvalidDocumentId && - document_id <= index_.last_added_document_id()) { - if (recovery_mode) { - // Skip the document if document_id <= last_added_document_id in recovery - // mode without returning an error. - return libtextclassifier3::Status::OK; - } - return absl_ports::InvalidArgumentError(IcingStringUtil::StringPrintf( - "DocumentId %d must be greater than last added document_id %d", - document_id, index_.last_added_document_id())); - } - index_.set_last_added_document_id(document_id); - + PutDocumentStatsProto* put_document_stats) { uint32_t num_tokens = 0; libtextclassifier3::Status status; for (const TokenizedSection& section : @@ -123,41 +103,10 @@ libtextclassifier3::Status StringSectionIndexingHandler::Handle( } if (put_document_stats != nullptr) { - put_document_stats->set_term_index_latency_ms( - index_timer->GetElapsedMilliseconds()); put_document_stats->mutable_tokenization_stats()->set_num_tokens_indexed( num_tokens); } - // If we're either successful or we've hit resource exhausted, then attempt a - // merge. - if ((status.ok() || absl_ports::IsResourceExhausted(status)) && - index_.WantsMerge()) { - ICING_LOG(INFO) << "Merging the index at docid " << document_id << "."; - - std::unique_ptr<Timer> merge_timer = clock_.GetNewTimer(); - libtextclassifier3::Status merge_status = index_.Merge(); - - if (!merge_status.ok()) { - ICING_LOG(ERROR) << "Index merging failed. Clearing index."; - if (!index_.Reset().ok()) { - return absl_ports::InternalError(IcingStringUtil::StringPrintf( - "Unable to reset to clear index after merge failure. Merge " - "failure=%d:%s", - merge_status.error_code(), merge_status.error_message().c_str())); - } else { - return absl_ports::DataLossError(IcingStringUtil::StringPrintf( - "Forced to reset index after merge failure. Merge failure=%d:%s", - merge_status.error_code(), merge_status.error_message().c_str())); - } - } - - if (put_document_stats != nullptr) { - put_document_stats->set_index_merge_latency_ms( - merge_timer->GetElapsedMilliseconds()); - } - } - return status; } |