quickwit-oss/tantivy

Optimize Segment Readers Alive Doc Iterator

Ouverte

#296 ouverte le 8 mai 2018

 (3 commentaires) (0 réaction) (0 personne assignée)Rust (978 forks)batch import
enhancementgood first issueperformance

Métriques du dépôt

Stars
 (15 972 étoiles)
Métriques de merge PR
 (Métriques PR en attente)

Description

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

Guide contributeur