From 8bb8f613d834d324c5efdcb38bd279bc6b568424 Mon Sep 17 00:00:00 2001 From: Valery Mironov <32071355+MBkkt@users.noreply.github.com> Date: Fri, 1 Dec 2023 13:02:02 +0100 Subject: [PATCH] WIP --- core/search/ngram_similarity_query.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/core/search/ngram_similarity_query.cpp b/core/search/ngram_similarity_query.cpp index 85d5249b3..39d1f39a5 100644 --- a/core/search/ngram_similarity_query.cpp +++ b/core/search/ngram_similarity_query.cpp @@ -581,12 +581,16 @@ doc_iterator::ptr NGramSimilarityQuery::execute( if (itrs.size() < min_match_count_) { return doc_iterator::empty(); } + // TODO(MBkkt) itrs.size() == 1: return itrs_[0], but needs to add score + // optimization for single ngram case if (itrs.size() == min_match_count_) { return memory::make_managed, SerialPositionsChecker>>( std::move(itrs), segment, *query_state->field, boost(), stats_.c_str(), query_state->terms.size(), min_match_count_, ord); } + // TODO(MBkkt) min_match_count_ == 1: disjunction for approx, + // optimization for low threshold case return memory::make_managed, SerialPositionsChecker>>( std::move(itrs), segment, *query_state->field, boost(), stats_.c_str(), @@ -607,11 +611,15 @@ doc_iterator::ptr NGramSimilarityQuery::ExecuteWithOffsets( if (itrs.size() < min_match_count_) { return doc_iterator::empty(); } + // TODO(MBkkt) itrs.size() == 1: return itrs_[0], but needs to add score + // optimization for single ngram case if (itrs.size() == min_match_count_) { return memory::make_managed, SerialPositionsChecker>>( std::move(itrs), query_state->terms.size(), min_match_count_, true); } + // TODO(MBkkt) min_match_count_ == 1: disjunction for approx, + // optimization for low threshold case return memory::make_managed, SerialPositionsChecker>>( std::move(itrs), query_state->terms.size(), min_match_count_, true);