Skip to content

[ENH]: Allow users to disable FTS in schema#6214

Merged
HammadB merged 5 commits intomainfrom
01-22-_enh_allow_users_to_disable_fts_in_schema
Feb 15, 2026
Merged

[ENH]: Allow users to disable FTS in schema#6214
HammadB merged 5 commits intomainfrom
01-22-_enh_allow_users_to_disable_fts_in_schema

Conversation

@sanketkedia
Copy link
Copy Markdown
Contributor

@sanketkedia sanketkedia commented Jan 22, 2026

Description of changes

Summarize the changes made by this PR.

  • Improvements & Bug fixes
    • Apply materialized logs skips fts indexing if disabled in schema. Note that it would still flush one empty block and a sparse index with one entry (init state) and write this file path to sysdb. Chose this approach for simplicity and due to less changes. Ideally the file path should be absent in sysdb for fts, the writer/reader should not create fts, etc.
    • Query/Get/Search throws an error if user tries FTS/Regex in such a case
    • Rust client, Python client and JS client now allow setting this. Previously the user would get an error if they try to disable FTS
  • New functionality
    • ...

Test plan

How are these changes tested?
Added unit tests and e2e tests

  • Tests pass locally with pytest for python, yarn test for js, cargo test for rust

Migration plan

None

Observability plan

None

Documentation Changes

None

@github-actions
Copy link
Copy Markdown

Reviewer Checklist

Please leverage this checklist to ensure your code review is thorough before approving

Testing, Bugs, Errors, Logs, Documentation

  • Can you think of any use case in which the code does not behave as intended? Have they been tested?
  • Can you think of any inputs or external events that could break the code? Is user input validated and safe? Have they been tested?
  • If appropriate, are there adequate property based tests?
  • If appropriate, are there adequate unit tests?
  • Should any logging, debugging, tracing information be added or removed?
  • Are error messages user-friendly?
  • Have all documentation changes needed been made?
  • Have all non-obvious changes been commented?

System Compatibility

  • Are there any potential impacts on other parts of the system or backward compatibility?
  • Does this change intersect with any items on our roadmap, and if so, is there a plan for fitting them together?

Quality

  • Is this code of a unexpectedly high quality (Readability, Modularity, Intuitiveness)

Copy link
Copy Markdown
Contributor Author

sanketkedia commented Jan 22, 2026

This stack of pull requests is managed by Graphite. Learn more about stacking.

@sanketkedia sanketkedia requested a review from HammadB January 22, 2026 17:37
@sanketkedia sanketkedia marked this pull request as ready for review January 22, 2026 17:37
@propel-code-bot
Copy link
Copy Markdown
Contributor

propel-code-bot bot commented Jan 22, 2026

Schema builders across the Rust storage layer, Python server, and JS client now enforce the FTS-only-on-#document rule, guard against reserved and special key misuse, and expose the ability to delete existing FTS indexes so the disablement state propagates consistently, with regression tests spanning compaction, validation, query blocking, persistence, and interactions with other index types.

Affected Areas

• rust/segment/src/blockfile_metadata.rs
• rust/types/src/collection_schema.rs
• chromadb/api/types.py
• chromadb/test/api/test_schema_e2e.py
• clients/new-js/packages/chromadb/src/schema.ts
• clients/new-js/packages/chromadb/test/schema.test.ts

This summary was automatically generated by @propel-code-bot

@blacksmith-sh

This comment has been minimized.

@HammadB HammadB mentioned this pull request Feb 15, 2026
1 task
@HammadB HammadB merged commit 29ee26c into main Feb 15, 2026
131 of 133 checks passed
chroma-droid pushed a commit that referenced this pull request Feb 16, 2026
## Description of changes

_Summarize the changes made by this PR._

- Improvements & Bug fixes
- Apply materialized logs skips fts indexing if disabled in schema. Note
that it would still flush one empty block and a sparse index with one
entry (init state) and write this file path to sysdb. Chose this
approach for simplicity and due to less changes. Ideally the file path
should be absent in sysdb for fts, the writer/reader should not create
fts, etc.
- Query/Get/Search throws an error if user tries FTS/Regex in such a
case
- Rust client, Python client and JS client now allow setting this.
Previously the user would get an error if they try to disable FTS
- New functionality
  - ...

## Test plan

_How are these changes tested?_
Added unit tests and e2e tests
- [x] Tests pass locally with `pytest` for python, `yarn test` for js,
`cargo test` for rust

## Migration plan
None

## Observability plan
None

## Documentation Changes
None
tanujnay112 added a commit that referenced this pull request Feb 18, 2026
- **[ENH]: Cache rust git submodules in mounted volume (#6424)**
- **[CHORE](k8s) increase dev CPU limits from 100m to 200-300m (#6435)**
- **[ENH] replace live cloud tests with k8s integration tests (#6434)**
- **[ENH] Make dirty_log_collections metric mcmr-aware. (#6353)**
- **[ENH] Quantized Spann Segment Writer (#6397)**
- **[ENH] Wire up quantized writer in compaction (#6399)**
- **[ENH] Quantized Spann Segment Reader (#6405)**
- **[ENH] Wire up quantized reader in new orchestrator (#6409)**
- **[ENH] Garbage collect usearch index files (#6416)**
- **[ENH] Trace quantized spann implementation (#6425)**
- **[ENH]: Precompute data chunk len() (#6442)**
- **[BUG]: Compaction version file flush was incomplete on MCMR
(#6423)**
- **[DOC]: Fixed broken links in Readme (#6440)**
- **[DOC] Fix link to Rust documentation (#6443)**
- **[ENH]: Allow users to disable FTS in schema (#6214)**

---------

Co-authored-by: Robert Escriva <[email protected]>
Co-authored-by: Macronova <[email protected]>
Co-authored-by: Nilpotent <[email protected]>
Co-authored-by: anderk222 <[email protected]>
Co-authored-by: Sanket Kedia <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants