quickwit-oss/tantivy

Optimize Segment Readers Alive Doc Iterator

Open

#296 ouverte le 8 mai 2018

Voir sur GitHub
 (3 commentaires) (0 réactions) (0 assignés)Rust (499 forks)batch import
enhancementgood first issueperformance

Métriques du dépôt

Stars
 (8 354 stars)
Métriques de merge PR
 (Merge moyen 12j 14h) (20 PRs mergées en 30 j)

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