Commit a89611c
committed
add: Implement Task 3.1 - filter_labels support in ingestion pipeline
Completes ingestion-side implementation for Filtered-Vamana feature by
adding filter_labels parameter support throughout the ingestion pipeline.
Key changes:
- Add filter_labels parameter to ingest() and ingest_vamana() functions
- Implement label enumeration: string labels → uint32 enumeration IDs
- Convert Python filter_labels (dict[external_id] -> list[str]) to C++
format (vector<unordered_set<uint32_t>> indexed by vector position)
- Update PyBind11 bindings to accept filter_labels and label_to_enum
- Update C++ vamana_index::train() to accept and store label_to_enum
- Update C++ API layer (IndexVamana, index_base, index_impl) to forward
filter parameters
- Fix bug: filter_labels wasn't being passed from main ingest() to
ingest_vamana()
With these changes, users can now ingest vectors with filter labels:
```python
ingest(
index_type="VAMANA",
index_uri=uri,
input_vectors=vectors,
filter_labels={
0: ["dataset_A"],
1: ["dataset_B"],
# ...
}
)
The label enumeration and start nodes metadata are now properly written
to TileDB storage during index creation.
Note: Query-side filtered search encounters a segfault that requires
further investigation (separate from this ingestion implementation).1 parent 9562030 commit a89611c
4 files changed
Lines changed: 80 additions & 12 deletions
File tree
- apis/python/src/tiledb/vector_search
- src/include
- api
- index
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
49 | 49 | | |
50 | 50 | | |
51 | 51 | | |
| 52 | + | |
52 | 53 | | |
53 | 54 | | |
54 | 55 | | |
| |||
1682 | 1683 | | |
1683 | 1684 | | |
1684 | 1685 | | |
| 1686 | + | |
1685 | 1687 | | |
1686 | 1688 | | |
1687 | 1689 | | |
| |||
1813 | 1815 | | |
1814 | 1816 | | |
1815 | 1817 | | |
1816 | | - | |
| 1818 | + | |
| 1819 | + | |
| 1820 | + | |
| 1821 | + | |
| 1822 | + | |
| 1823 | + | |
| 1824 | + | |
| 1825 | + | |
| 1826 | + | |
| 1827 | + | |
| 1828 | + | |
| 1829 | + | |
| 1830 | + | |
| 1831 | + | |
| 1832 | + | |
| 1833 | + | |
| 1834 | + | |
| 1835 | + | |
| 1836 | + | |
| 1837 | + | |
| 1838 | + | |
| 1839 | + | |
| 1840 | + | |
| 1841 | + | |
| 1842 | + | |
| 1843 | + | |
| 1844 | + | |
| 1845 | + | |
| 1846 | + | |
| 1847 | + | |
| 1848 | + | |
| 1849 | + | |
| 1850 | + | |
| 1851 | + | |
| 1852 | + | |
| 1853 | + | |
| 1854 | + | |
| 1855 | + | |
| 1856 | + | |
| 1857 | + | |
1817 | 1858 | | |
1818 | 1859 | | |
1819 | 1860 | | |
| |||
2570 | 2611 | | |
2571 | 2612 | | |
2572 | 2613 | | |
| 2614 | + | |
2573 | 2615 | | |
2574 | 2616 | | |
2575 | 2617 | | |
| |||
Lines changed: 8 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
421 | 421 | | |
422 | 422 | | |
423 | 423 | | |
424 | | - | |
425 | | - | |
| 424 | + | |
| 425 | + | |
| 426 | + | |
| 427 | + | |
| 428 | + | |
426 | 429 | | |
427 | | - | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
428 | 433 | | |
429 | 434 | | |
430 | 435 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
161 | 161 | | |
162 | 162 | | |
163 | 163 | | |
164 | | - | |
| 164 | + | |
| 165 | + | |
165 | 166 | | |
166 | 167 | | |
167 | | - | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
168 | 172 | | |
169 | 173 | | |
170 | 174 | | |
| |||
194 | 198 | | |
195 | 199 | | |
196 | 200 | | |
197 | | - | |
| 201 | + | |
198 | 202 | | |
199 | 203 | | |
200 | 204 | | |
| |||
341 | 345 | | |
342 | 346 | | |
343 | 347 | | |
344 | | - | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
345 | 352 | | |
346 | 353 | | |
347 | 354 | | |
| |||
396 | 403 | | |
397 | 404 | | |
398 | 405 | | |
399 | | - | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
400 | 411 | | |
401 | 412 | | |
402 | 413 | | |
| |||
408 | 419 | | |
409 | 420 | | |
410 | 421 | | |
411 | | - | |
| 422 | + | |
412 | 423 | | |
413 | 424 | | |
414 | 425 | | |
415 | | - | |
| 426 | + | |
416 | 427 | | |
417 | 428 | | |
418 | 429 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
486 | 486 | | |
487 | 487 | | |
488 | 488 | | |
489 | | - | |
| 489 | + | |
| 490 | + | |
490 | 491 | | |
491 | 492 | | |
492 | 493 | | |
| |||
527 | 528 | | |
528 | 529 | | |
529 | 530 | | |
| 531 | + | |
| 532 | + | |
| 533 | + | |
| 534 | + | |
| 535 | + | |
| 536 | + | |
| 537 | + | |
| 538 | + | |
| 539 | + | |
530 | 540 | | |
531 | 541 | | |
532 | 542 | | |
| |||
0 commit comments