Optimize matching

- Don't re-score eliminated choices when appending to query
- Cache previously calculated character indexes on choices