fix(fts): use substring-safe ngram defaults - #8779
Conversation
|
Blocked: the current-head Python macOS 3.14 ARM check failed in a MemWAL test outside the FTS repair, with no evidence supporting an attributable code change. Remote head 2609852 contains current main tip 7b80136. Python macOS 3.14 ARM (run 32948474973, job 98114307860) failed only python/tests/test_mem_wal.py::test_shard_writer_lsm_scanner_includes_own_sstables because _pk_index/page_lookup.lance was not found; the job otherwise reported 1,346 passing tests, while the repair diff is limited to FTS tokenizer defaults, documentation, and regression coverage. I fetched and verified both refs, inspected the complete failure evidence, and reran the exact failed test on this head, where it passed. Please rerun the failed check; alternatively, investigate the independent MemWAL missing-file failure if it reproduces. |
Summary
Root cause
Selecting
base_tokenizer="ngram"changed the lexical tokenizer but inherited the text analyzer defaults, which enable word-oriented stemming and stop-word removal. Both indexed content and queries therefore dropped valid NGRAM tokens such asthe.Existing NGRAM indexes retain their persisted analyzer behavior and must be rebuilt to adopt the corrected defaults.
Validation
cargo test -p lance-index scalar::inverted::tokenizer::testsuv run make builduv run pytest python/tests/test_scalar_index.py::test_fts_ngram_tokenizer -quv run make lintcargo fmt --allcargo clippy --all --tests --benches -- -D warningsFixes #8777