zvec/tests/db
egolearner 443500dc45
feat: add FTS support for Collection::CreateIndex/DropIndex (#445)
* feat: add FTS support for Collection::CreateIndex/DropIndex

Enable dynamic creation and removal of FTS indexes on existing STRING
columns through the standard CreateIndex/DropIndex API, matching the
lifecycle model already used by vector and scalar (invert) indexes.

Key changes:
- New FtsIndexer class (fts_indexer.h/cc) encapsulating per-segment FTS
  RocksDB management: multi-field lifecycle, snapshot, insert, seal
- New BlockType::FTS_INDEX with block_id-based directory naming
  (fts.<block_id>.rocksdb) for crash-safe snapshot-and-swap
- Segment::create_fts_index builds FTS index on a snapshot copy by
  scanning forward store, then outputs new SegmentMeta + FtsIndexer
  for atomic reload (same pattern as create_scalar_index)
- Segment::drop_fts_index snapshots, removes field CFs, outputs updated
  meta (or nullptr when last FTS field is removed)
- Collection layer wires FTS into the existing task dispatch, version
  update, and reload loops alongside vector/invert paths
- CreateIndex/DropIndex reject unsupported index types explicitly
  instead of falling through to the wrong branch

* fixup! feat: add FTS support for Collection::CreateIndex/DropIndex

    fix: address review comments for FTS CreateIndex/DropIndex

    - Reject CreateIndex when column already has a different index type
      (e.g. FTS on an INVERT-indexed column) at both Collection and
      Segment layers
    - Allow same-type different-params CreateIndex to rebuild the index
      (remove old + create new + replay data), aligned with INVERT behavior
    - Return OK when CreateIndex is called with identical params
    - Rename operator[] to get() in both FtsIndexer and InvertedIndexer
    - Add test cases: create→drop→create→drop cycle, and params-change
      rebuild with case-sensitivity verification

* android skip Feature_CreateOrDropFtsIndex

* fixup! feat: add FTS support for Collection::CreateIndex/DropIndex
2026-06-03 17:56:56 +08:00
..
common fix: rename LogLevel enums to kStyle to avoid windows.h ERROR macro conflict (#435) 2026-06-02 11:32:50 +08:00
crash_recovery refactor: drop VectorQuery, unify single-target query on SearchQuery (#428) 2026-05-29 16:36:09 +08:00
index refactor: clarify segment-local row ID handling and tests and fixes bugs (#432) 2026-06-03 15:20:45 +08:00
sqlengine feat: add FTS support for Collection::CreateIndex/DropIndex (#445) 2026-06-03 17:56:56 +08:00
CMakeLists.txt feat: add hnsw-rabitq support (#69) 2026-03-19 17:21:42 +08:00
collection_test.cc feat: add FTS support for Collection::CreateIndex/DropIndex (#445) 2026-06-03 17:56:56 +08:00
fts_query_test.cc feat: add fts support (#408) 2026-06-01 15:02:54 +08:00
reranker_test.cc feat: migrate multi-vector query and reranker logic to C++ (#405) 2026-05-29 10:10:41 +08:00
utf8_collection_test.cc refactor: support UTF-8 file paths via std::filesystem (#359) 2026-05-08 17:44:22 +08:00