aboutsummaryrefslogtreecommitdiff
path: root/icing/index/string-section-indexing-handler.cc
diff options
context:
space:
mode:
Diffstat (limited to 'icing/index/string-section-indexing-handler.cc')
-rw-r--r--icing/index/string-section-indexing-handler.cc57
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;
}