Skip to content

feat: add Lumina vector index read infrastructure#267

Open
XiaoHongbo-Hope wants to merge 2 commits intoapache:mainfrom
XiaoHongbo-Hope:support_lumina
Open

feat: add Lumina vector index read infrastructure#267
XiaoHongbo-Hope wants to merge 2 commits intoapache:mainfrom
XiaoHongbo-Hope:support_lumina

Conversation

@XiaoHongbo-Hope
Copy link
Copy Markdown
Contributor

@XiaoHongbo-Hope XiaoHongbo-Hope commented Apr 19, 2026

Purpose

Subtask of #227

Brief change log

Tests

API and Format

Documentation

@XiaoHongbo-Hope XiaoHongbo-Hope changed the title feat: support Lumina vector index read path feat: add Lumina vector index reader support Apr 19, 2026
@XiaoHongbo-Hope XiaoHongbo-Hope changed the title feat: add Lumina vector index reader support feat: add lumina vector index reader support Apr 19, 2026
@XiaoHongbo-Hope XiaoHongbo-Hope changed the title feat: add lumina vector index reader support feat: add Lumina vector index read infrastructure Apr 19, 2026
@XiaoHongbo-Hope XiaoHongbo-Hope marked this pull request as ready for review April 19, 2026 14:25
@XiaoHongbo-Hope XiaoHongbo-Hope force-pushed the support_lumina branch 3 times, most recently from a7b9e8b to 2c6608c Compare April 20, 2026 09:14
}

Ok(Some(Box::new(DictBasedScoredIndexResult::new(
id_to_scores,
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here can just return ids like tantivy. We don't need to introduce DictBasedScoredIndexResult.


pub type ScoreGetter = Arc<dyn Fn(u64) -> f32 + Send + Sync>;

pub trait GlobalIndexResult: Send + Sync {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove this file.

Copy link
Copy Markdown
Contributor

@JingsongLi JingsongLi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can just implement whole feature up to datafusion integration in this PR.

Comment thread crates/paimon/Cargo.toml
storage-oss = ["opendal/services-oss"]
storage-s3 = ["opendal/services-s3"]
storage-hdfs = ["opendal/services-hdfs-native"]
lumina = ["libloading"]
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

libloading is already an indirect dependency of the project (brought in via other crates). If you add it as a direct dependency, it won't introduce any new crates to the build—it simply adds an explicit entry to your Cargo.toml. The impact on the package size is essentially negligible.

So, no need to add lumina feature.

Copy link
Copy Markdown
Contributor

@luoyuxia luoyuxia left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@XiaoHongbo-Hope Thanks for the pr. I left minor comments. PTAL


let mut searcher_options = strip_lumina_options(&self.options);
for (k, v) in index_meta.options().iter() {
searcher_options.insert(k.to_string(), v.to_string());
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is it expected that searcher_options will overwrite self.options which i assume is the option passed by users.

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.

3 participants