This is an automated email from the ASF dual-hosted git repository.

yiguolei pushed a commit to branch branch-4.2
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/branch-4.2 by this push:
     new c8ef2c01410 branch-4.2: [refactor](index) Move collection similarity 
to shared index code (#68602) (#68678)
c8ef2c01410 is described below

commit c8ef2c01410cd7338c5aba802026b997738cf262
Author: Jack <[email protected]>
AuthorDate: Thu Oct 15 19:12:10 2026 +0800

    branch-4.2: [refactor](index) Move collection similarity to shared index 
code (#68602) (#68678)
    
    ### What problem does this PR solve?
    
    Issue Number: None
    
    Related PR: #68602 (master)
    
    Problem Summary:
    
    `CollectionSimilarity` is used by both inverted-index and SNII queries
    but lived under `storage/compaction`. This backport moves its
    implementation, header and test to `storage/index` and updates every
    direct include. The scoring code is unchanged. The 4.2 compile-check
    markers and surrounding branch-specific declarations remain intact.
    
    ### Release note
    
    None. This changes source layout only.
    
    ### Check List (For Author)
    
    - Test:
        - [x] Regression test
        - [x] Unit Test
        - [ ] Manual test
    - Behavior changed:
        - [x] No.
    - Does this need documentation?
        - [x] No. Source layout only.
    
    ### Backport audit
    
    Source merge commit: `7c2f99b1bc03c0b43a877fe90837172f4de637c3`;
    backport commit: `5c0e125b07240d8fd4344bbe0793ddc533ae657b`.
    
    | Source file | Source hunk | Disposition |
    | --- | --- | --- |
    | `be/src/storage/index/collection_similarity.cpp` | `@@ -18 +18 @@` |
    Ported: Source include-path change is present. |
    | `be/src/storage/index/collection_similarity.cpp` | `@@ -168 +168 @@
    void CollectionSimilarity::find_top_k_scores(const roaring::Roaring*
    row_bitmap,` | Adapted: 4.2 compile-check end marker retained. |
    | `be/src/storage/index/collection_similarity.h` | `R100 (no @@ hunk)` |
    Adapted: File moved; 4.2 compile-check markers retained. |
    | `be/src/storage/index/index_query_context.h` | `@@ -23 +23 @@` |
    Adapted: Source include path updated; 4.2 compile-check markers and
    local type includes retained. |
    | `be/src/storage/index/inverted/query_v2/collect/doc_set_collector.h` |
    `all source hunks` | Ported(verbatim): Target file matches source blob.
    |
    | `be/src/storage/index/inverted/query_v2/collect/top_k_collector.h` |
    `@@ -29 +29 @@` | Ported: Source include-path change is present. |
    |
    
`be/src/storage/index/inverted/query_v2/scored_bit_set_query/scored_bit_set_scorer.h`
    | `all source hunks` | Ported(verbatim): Target file matches source
    blob. |
    | `be/src/storage/segment/segment_iterator.cpp` | `@@ -80 +79,0 @@` |
    Ported: Source include-path change is present. |
    | `be/src/storage/segment/segment_iterator.cpp` | `@@ -85,0 +85 @@` |
    Ported: Source include-path change is present. |
    | `be/test/storage/index/collection_similarity_test.cpp` | `all source
    hunks` | Ported(verbatim): Target file matches source blob. |
    |
    
`be/test/storage/index/inverted/inverted_index_reader_analysis_purpose_test.cpp`
    | `@@ -32 +32 @@` | Ported: Source include-path change is present. |
    | `be/test/storage/index/inverted/query/phrase_prefix_query_test.cpp` |
    `all source hunks` | Ported(verbatim): Target file matches source blob.
    |
    | `be/test/storage/index/inverted/query/query_helper_test.cpp` | `all
    source hunks` | Ported(verbatim): Target file matches source blob. |
    | `be/test/storage/index/snii/snii_index_reader_candidate_test.cpp` |
    `all source hunks` | Ported(verbatim): Target file matches source blob.
    |
    
    `git range-diff` shows only the expected branch differences: the 4.2
    compile-check markers remain in the moved files and index query context;
    the 4.2 segment iterator and collector headers retain unrelated
    branch-specific declarations. Every source include-path change is
    present.
    
    ### Validation
    
    - BE ASAN build: passed.
    - BE ASAN unit tests: 58/58 passed across `CollectionSimilarityTest`
    (27), `SniiIndexReaderCandidateTest` (9),
    `InvertedIndexReaderAnalysisPurposeTest` (5), `PhrasePrefixQueryTest`
    (7), and `QueryHelperTest` (10). No sanitizer report.
    - Isolated regression:
    `inverted_index_p0/test_phrase_candidate_pushdown` and
    `storage_format/test_storage_format_snii_norms`; one suite each, zero
    failures.
    - Complete PR diff English check: passed with no data exceptions.
    - Merged-tree clang-format 16 preflight: passed against
    `origin/branch-4.2` at `7e4909b904ff49fc799e5a4efa02f03fe4a8638d`.
    - Advisory clang-tidy did not complete: the branch's warning-as-error
    setting promoted existing diagnostics in `segment_iterator.cpp`, and
    Clang 16 reported existing `jni-util.h` static assertions. No tidy pass
    is claimed.
---
 be/src/storage/{compaction => index}/collection_similarity.cpp     | 4 ++--
 be/src/storage/{compaction => index}/collection_similarity.h       | 0
 be/src/storage/index/index_query_context.h                         | 7 +++++--
 be/src/storage/index/inverted/query_v2/collect/doc_set_collector.h | 2 +-
 be/src/storage/index/inverted/query_v2/collect/top_k_collector.h   | 2 +-
 .../inverted/query_v2/scored_bit_set_query/scored_bit_set_scorer.h | 2 +-
 be/src/storage/segment/segment_iterator.cpp                        | 2 +-
 .../storage/{compaction => index}/collection_similarity_test.cpp   | 6 +++---
 .../index/inverted/inverted_index_reader_analysis_purpose_test.cpp | 2 +-
 be/test/storage/index/inverted/query/phrase_prefix_query_test.cpp  | 2 +-
 be/test/storage/index/inverted/query/query_helper_test.cpp         | 4 ++--
 be/test/storage/index/snii/snii_index_reader_candidate_test.cpp    | 2 +-
 12 files changed, 19 insertions(+), 16 deletions(-)

diff --git a/be/src/storage/compaction/collection_similarity.cpp 
b/be/src/storage/index/collection_similarity.cpp
similarity index 98%
rename from be/src/storage/compaction/collection_similarity.cpp
rename to be/src/storage/index/collection_similarity.cpp
index a4e5e64a807..03ed169006b 100644
--- a/be/src/storage/compaction/collection_similarity.cpp
+++ b/be/src/storage/index/collection_similarity.cpp
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include "storage/compaction/collection_similarity.h"
+#include "storage/index/collection_similarity.h"
 
 #include "core/column/column_nullable.h"
 #include "core/column/column_vector.h"
@@ -167,4 +167,4 @@ void CollectionSimilarity::find_top_k_scores(const 
roaring::Roaring* row_bitmap,
 }
 
 #include "common/compile_check_end.h"
-} // namespace doris
\ No newline at end of file
+} // namespace doris
diff --git a/be/src/storage/compaction/collection_similarity.h 
b/be/src/storage/index/collection_similarity.h
similarity index 100%
rename from be/src/storage/compaction/collection_similarity.h
rename to be/src/storage/index/collection_similarity.h
diff --git a/be/src/storage/index/index_query_context.h 
b/be/src/storage/index/index_query_context.h
index 3e529a8078b..4f458bf36d7 100644
--- a/be/src/storage/index/index_query_context.h
+++ b/be/src/storage/index/index_query_context.h
@@ -17,7 +17,10 @@
 
 #pragma once
 
-#include "storage/compaction/collection_similarity.h"
+#include <memory>
+#include <roaring/roaring.hh>
+
+#include "storage/index/collection_similarity.h"
 #include "storage/index/inverted/similarity/collection_statistics.h"
 
 namespace doris::segment_v2 {
@@ -95,4 +98,4 @@ struct IndexQueryContext {
 using IndexQueryContextPtr = std::shared_ptr<IndexQueryContext>;
 
 #include "common/compile_check_end.h"
-} // namespace doris::segment_v2
\ No newline at end of file
+} // namespace doris::segment_v2
diff --git a/be/src/storage/index/inverted/query_v2/collect/doc_set_collector.h 
b/be/src/storage/index/inverted/query_v2/collect/doc_set_collector.h
index bad94d724bc..4cc0f09c9a7 100644
--- a/be/src/storage/index/inverted/query_v2/collect/doc_set_collector.h
+++ b/be/src/storage/index/inverted/query_v2/collect/doc_set_collector.h
@@ -20,7 +20,7 @@
 #include <memory>
 #include <roaring/roaring.hh>
 
-#include "storage/compaction/collection_similarity.h"
+#include "storage/index/collection_similarity.h"
 #include "storage/index/inverted/query_v2/weight.h"
 
 namespace doris::segment_v2::inverted_index::query_v2 {
diff --git a/be/src/storage/index/inverted/query_v2/collect/top_k_collector.h 
b/be/src/storage/index/inverted/query_v2/collect/top_k_collector.h
index 889aff9fa55..809c0f5a87a 100644
--- a/be/src/storage/index/inverted/query_v2/collect/top_k_collector.h
+++ b/be/src/storage/index/inverted/query_v2/collect/top_k_collector.h
@@ -27,7 +27,7 @@
 #include <string>
 #include <vector>
 
-#include "storage/compaction/collection_similarity.h"
+#include "storage/index/collection_similarity.h"
 #include "storage/index/inverted/query_v2/weight.h"
 
 namespace doris::segment_v2::inverted_index::query_v2 {
diff --git 
a/be/src/storage/index/inverted/query_v2/scored_bit_set_query/scored_bit_set_scorer.h
 
b/be/src/storage/index/inverted/query_v2/scored_bit_set_query/scored_bit_set_scorer.h
index 59aae9a09f1..503606d91a8 100644
--- 
a/be/src/storage/index/inverted/query_v2/scored_bit_set_query/scored_bit_set_scorer.h
+++ 
b/be/src/storage/index/inverted/query_v2/scored_bit_set_query/scored_bit_set_scorer.h
@@ -21,7 +21,7 @@
 #include <utility>
 
 #include "roaring/roaring.hh"
-#include "storage/compaction/collection_similarity.h"
+#include "storage/index/collection_similarity.h"
 #include "storage/index/inverted/query_v2/bit_set_query/bit_set_scorer.h"
 #include "storage/index/inverted/query_v2/scorer.h"
 
diff --git a/be/src/storage/segment/segment_iterator.cpp 
b/be/src/storage/segment/segment_iterator.cpp
index bec2c7f34ba..9cbb1d247a1 100644
--- a/be/src/storage/segment/segment_iterator.cpp
+++ b/be/src/storage/segment/segment_iterator.cpp
@@ -79,12 +79,12 @@
 #include "runtime/runtime_predicate.h"
 #include "runtime/runtime_state.h"
 #include "runtime/thread_context.h"
-#include "storage/compaction/collection_similarity.h"
 #include "storage/id_manager.h"
 #include "storage/index/ann/ann_index.h"
 #include "storage/index/ann/ann_index_iterator.h"
 #include "storage/index/ann/ann_index_reader.h"
 #include "storage/index/ann/ann_topn_runtime.h"
+#include "storage/index/collection_similarity.h"
 #include "storage/index/index_file_reader.h"
 #include "storage/index/index_iterator.h"
 #include "storage/index/index_query_context.h"
diff --git a/be/test/storage/compaction/collection_similarity_test.cpp 
b/be/test/storage/index/collection_similarity_test.cpp
similarity index 99%
rename from be/test/storage/compaction/collection_similarity_test.cpp
rename to be/test/storage/index/collection_similarity_test.cpp
index 7b5bf796353..3657b7089a0 100644
--- a/be/test/storage/compaction/collection_similarity_test.cpp
+++ b/be/test/storage/index/collection_similarity_test.cpp
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include "storage/compaction/collection_similarity.h"
+#include "storage/index/collection_similarity.h"
 
 #include <gtest/gtest.h>
 
@@ -643,7 +643,7 @@ TEST_F(CollectionSimilarityTest, LargeDataSparseBitmapTest) 
{
 
     for (size_t i = 0; i < NUM_SCORED_ROWS; ++i) {
         float score = static_cast<float>(i + 1) / 
static_cast<float>(NUM_SCORED_ROWS);
-        similarity->collect(static_cast<uint32_t>(i * 100), score); // 稀疏分布
+        similarity->collect(static_cast<uint32_t>(i * 100), score);
     }
 
     std::vector<uint32_t> all_ids;
@@ -763,4 +763,4 @@ TEST_F(CollectionSimilarityTest, 
LargeDataBoundaryThresholdTest) {
     }
 }
 
-} // namespace doris
\ No newline at end of file
+} // namespace doris
diff --git 
a/be/test/storage/index/inverted/inverted_index_reader_analysis_purpose_test.cpp
 
b/be/test/storage/index/inverted/inverted_index_reader_analysis_purpose_test.cpp
index e0e9620e964..6d55def1516 100644
--- 
a/be/test/storage/index/inverted/inverted_index_reader_analysis_purpose_test.cpp
+++ 
b/be/test/storage/index/inverted/inverted_index_reader_analysis_purpose_test.cpp
@@ -29,7 +29,7 @@
 #include "io/fs/local_file_system.h"
 #include "runtime/exec_env.h"
 #include "runtime/runtime_state.h"
-#include "storage/compaction/collection_similarity.h"
+#include "storage/index/collection_similarity.h"
 #include "storage/index/index_file_reader.h"
 #include "storage/index/inverted/analyzer/analyzer.h"
 #include "storage/index/inverted/analyzer/analyzer_provider.h"
diff --git a/be/test/storage/index/inverted/query/phrase_prefix_query_test.cpp 
b/be/test/storage/index/inverted/query/phrase_prefix_query_test.cpp
index 94b0eca42b3..07863f708a8 100644
--- a/be/test/storage/index/inverted/query/phrase_prefix_query_test.cpp
+++ b/be/test/storage/index/inverted/query/phrase_prefix_query_test.cpp
@@ -23,7 +23,7 @@
 
 #include "io/fs/local_file_system.h"
 #include "runtime/exec_env.h"
-#include "storage/compaction/collection_similarity.h"
+#include "storage/index/collection_similarity.h"
 #include "storage/index/index_file_reader.h"
 #include "storage/index/index_file_writer.h"
 #include "storage/index/inverted/inverted_index_cache.h"
diff --git a/be/test/storage/index/inverted/query/query_helper_test.cpp 
b/be/test/storage/index/inverted/query/query_helper_test.cpp
index 95c1a3a6fad..51a47bdcbd9 100644
--- a/be/test/storage/index/inverted/query/query_helper_test.cpp
+++ b/be/test/storage/index/inverted/query/query_helper_test.cpp
@@ -22,7 +22,7 @@
 #include <memory>
 
 #include "common/be_mock_util.h"
-#include "storage/compaction/collection_similarity.h"
+#include "storage/index/collection_similarity.h"
 #include "storage/index/index_query_context.h"
 #include "storage/index/inverted/similarity/similarity.h"
 #include "storage/index/inverted/util/mock_iterator.h"
@@ -276,4 +276,4 @@ TEST_F(QueryHelperTest, CollectMixedScenario) {
     ASSERT_TRUE(_context->collection_similarity->_bm25_scores.count(1002) > 0);
     ASSERT_TRUE(_context->collection_similarity->_bm25_scores.count(2000) > 0);
     ASSERT_TRUE(_context->collection_similarity->_bm25_scores.count(2001) > 0);
-}
\ No newline at end of file
+}
diff --git a/be/test/storage/index/snii/snii_index_reader_candidate_test.cpp 
b/be/test/storage/index/snii/snii_index_reader_candidate_test.cpp
index a1f4f71c36d..d58512f82b8 100644
--- a/be/test/storage/index/snii/snii_index_reader_candidate_test.cpp
+++ b/be/test/storage/index/snii/snii_index_reader_candidate_test.cpp
@@ -31,7 +31,7 @@
 #include "io/fs/local_file_system.h"
 #include "runtime/exec_env.h"
 #include "runtime/runtime_state.h"
-#include "storage/compaction/collection_similarity.h"
+#include "storage/index/collection_similarity.h"
 #include "storage/index/index_file_reader.h"
 #include "storage/index/index_query_context.h"
 #include "storage/index/inverted/analyzer/custom_analyzer.h"


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to