mirror of
https://github.com/lancedb/lancedb.git
synced 2026-10-15 00:02:26 +00:00
Sync remote string searches ignored the table's embedding function when `vector_column_name` was omitted. `auto` silently fell back to full-text search, while `vector` and `hybrid` failed with `No embedding function for None`. Resolve vector columns from the schema before creating the query builder, using the same inference helper as local search. Automatic string queries without embedding functions select full-text search first, so text-only tables and tables with multiple unconfigured vector columns remain searchable. Vector and hybrid searches still reject ambiguous columns, infer numeric queries by dimension, and honor explicit column selection. Structured full-text queries and empty queries retain their existing behavior. Regression coverage uses embedding metadata returned by a mocked remote server rather than a mocked embedding-function lookup. It also checks automatic and explicit full-text queries on schemas with zero, one, or multiple vector columns and no embedding functions. Validation after merging `main` at `87ecfeac`: - Confirmed the original embedding and ambiguity failures before the fix, and reproduced the automatic FTS inference failures before restoring the fallback. - Remote, query, hybrid, and embedding test files through the uv-managed environment: 240 passed, 4 skipped, 9 deselected (`not slow and not s3_test`). - Python extension built with `uv run --extra tests --extra dev maturin develop --extras tests,dev`. - `ruff check .` and `ruff format .` from the repository root, using CI's Ruff version 0.9.9. - `cargo fmt --all`. Fixes #4377 <!-- lance-gatekeeper-fix:v1 agent=c167c6c89d857342e5d7415b08142589 generation=1 --> --------- Co-authored-by: Gatefixer <313497061+lancedb-gatefixer[bot]@users.noreply.github.com>