-
Notifications
You must be signed in to change notification settings - Fork 5
/
TODO
85 lines (49 loc) · 2.24 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
structural diffs
- IntNRQ: stops collecting after first topN hits
- sending MUST_NOT to BS
- ExactPhraseQuery stopping after phraseFreq=1 when hit cannot compete (but must be counted)
DS
- handle pure DD too
FACETS
- I can put a "stop bit" at the end of the DD/DS bits, and save an inner if?
handle BQ over DOCS_ONLY?
hmm queries that are expensive to rewrite but then native boost doesn't apply, are slower!! do more up-front checks?
can we be agnostic to 4.3 vs 4.4?
add a "requireExactTotalHits" boolean
install this w/ jirasearch!
cache more reflection fields/methods!
don't pull DocsEnum? can't i get at the docIn separately?
why does TermRangeQuery not work?
convert live docs -> FixedBitSet? so i can share code w/ filter ...
need to cherrypick which MUST queries are "appropriate" for BS1...
get omitNorms working
hmm TermsFilter?
hmm BooleanFilter?
hmm only the LAST must clause needs to fill in numFilled! don't bother filling for first N-1
- and, we can collect during that last must
PQ
- why do we have both posUpto and posLeft?
- must add the pos > lastPos check for same term at same position in a row!!
- how should we sort the terms?
- check positinos inside orLastMustChunk instead
Filter via acceptDocs
fix TermQuery !! just do for loop over block size --> slower (strangely)
cutover to generic getField
CSQ(TermQuery) can be massively optimized in the no deletes case!
hmm will this "starve" GC?
how to work across diff't lucene versions!?
make separate NativeMMapII impls for bounds checking (segments_N) and not?
later
- really we should do the "checking" for all segs up-front, so we don't e.g. do lots of work on first segments only to discover a bad PF in the last one
- or, do the native or not decision per-segment ... but this is uncommon
add madvise calls for merges to NativeMMapDir?
facets?
factor out common code in NativeSearch.java
why are there score iota diffs!
gen specialized decoders for x86!!! horrible that I bswap on every load...
don't specialize decode above 24 bits?
write simd?
allow terms across different fields
make good random test
should i make just one JNI call, passing all segments down? or, one JNI call per segment?
should we pre-share global stuff like byte[] norms?