Adding 3-ary PriorityQueue to speed up TopFieldCollector
- Dominant language
- Java
- Stars
- 3.6k
- Forks
- 1.4k
- Avg merge
- 2d 11h
- Merged PRs (30d)
- 88
Description
### Description
In #15140, we introduced TernaryLongHeap to optimize performance for collectors such as TopDoc*Collectors. Nevertheless, TopFieldLeafCollector still adopts a 2-ary PriorityQueue, which causes identical performance bottlenecks even with a topN value of 1000.
Would it be feasible to implement a ternary-heap based PriorityQueue as well?
Contributor guide
Research direction
Start by comparing the existing TernaryLongHeap from #15140 with TopFieldLeafCollector and its current 2-ary PriorityQueue usage. Investigate the reported topN=1000 bottleneck and benchmark the ternary implementation against the existing queue; done means a validated PriorityQueue approach with improved collector performance.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- search
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100