quickwit-oss/tantivy

Optimize Segment Readers Alive Doc Iterator

Open

#296 geöffnet am 8. Mai 2018

Auf GitHub ansehen
 (3 Kommentare) (0 Reaktionen) (0 zugewiesene Personen)Rust (499 Forks)batch import
enhancementgood first issueperformance

Repository-Metriken

Stars
 (8.354 Stars)
PR-Merge-Metriken
 (Durchschn. Merge 12T 14h) (20 gemergte PRs in 30 T)

Beschreibung

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

Contributor Guide