Mike McMahon

Results 24 issues of Mike McMahon

``` java.lang.IllegalArgumentException: after must be a FieldDoc; got doc=616 score=NaN shardIndex=0 at org.apache.lucene.search.IndexSearcher.searchAfter(IndexSearcher.java:513) at org.apache.lucene.search.IndexSearcher.searchAfter(IndexSearcher.java:489) at com.apple.foundationdb.record.lucene.LuceneRecordCursor.searchForTopDocs(LuceneRecordCursor.java:267) at com.apple.foundationdb.record.lucene.LuceneRecordCursor.maybePerformScan(LuceneRecordCursor.java:231) at com.apple.foundationdb.record.lucene.LuceneRecordCursor.lambda$onNext$1(LuceneRecordCursor.java:185) at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1700) ```

bug

… of `AND` and `OR` queries and separate / combined Lucene indexes for the clauses' fields. Enhance `planOther` so that intersection of compatibly (meaning, explicitly) ordered scans is attempted. Add...

Follow-on to #1816: Add function key expressions to represent the two built-in sort orders for Lucene searches. Draft because these default keys aren't really suitable most of the time.

This predicate and the comment that follows are not correct: ``` if (planOrderingKey != null && (sort != null || planOrderingKey.isPrimaryKeyOrdered())) { // If there is a sort, all chosen...

bug
planner

Right now, `planOr` is attempted before any indexes, even though in the case of Lucene `planOther` can handle the entire disjunction. Since the planner only currently matches Lucene indexes based...

planner

It actually only needs to save primary key fields that aren't in the grouping key. I think it's pretty common for these to overlap. Unfortunately, changing this will be incompatible...

performance

* `lucene_stored` function causes field to _additionally_ be stored. * `LuceneRecordCursor.onNext` knows how to put them into the index entry. * something instructs `AvailableFields` to know they are there.

enhancement

The primary key turns into a stored field, but as a byte array. Also, if the primary key has multiple components there is still only one field in the document....

… and is allowed to commit it along the way. Because of the way merging happens in multiple threads, it is possible for there to be outstanding reads at the...