quickwit-oss/tantivy

Optimize Segment Readers Alive Doc Iterator

Open

#296 aperta il 8 mag 2018

Vedi su GitHub
 (3 commenti) (0 reazioni) (0 assegnatari)Rust (499 fork)batch import
enhancementgood first issueperformance

Metriche repository

Star
 (8354 star)
Metriche merge PR
 (Merge medio 12g 14h) (20 PR mergiate in 30 g)

Descrizione

Noted in PR #293

Use the same trick as what is used in the [BitSetDocSet] (https://github.com/tantivy-search/tantivy/blob/78673172d001a0c4c7c73cdd3d9923fc43fc0312/src/query/bitset/mod.rs) which relies on TinySet

In a nutshell : instead of looping on the bitset to find the next thing alive, it uses a special cpu instruction to get the next bit set to 1 in a u64. The instruction is not free, but except if your bitset is EXTREMELY saturated it is generally faster.

https://github.com/tantivy-search/tantivy/pull/293#discussion-diff-186488306R373

Guida contributor