changed date parsing to NOT update internal state of the date
range object (avoids races)
second, when marshaling a facet date range, we now use the
string version, if the time.Time is zero and the string version
is not ""
MultiSearch previously had its own timeout checking. This commit
removes that timeout checking, so that now MultiSearch instead depends
upon the bleve.Index implementations to perform their own context
deadline/timeout checking.
Because deadline/timeout checking is now handled by the bleve.Index
implementations, this change allows applications to provide richer
error and status results during timeouts.
our policy has been to vendor the libraries required for the
command-line portion of the bleve command-line tool. this
included spf13/cobra etc, unfortunately we missed this library
as it is only required for windows users.
bleve check was a consistency checking tool originally developed
as a part of cbft. currently it checks that the term dictionary
counts match the number of postings for the term. in the future
additional checks could be added. this tool has been back
ported to bleve as we've now adopted a single common tool for
both cbft and bleve.
This commit reverts a previous optimization attempt 3f588cd4a that
tried to trim or shrink the array of child searchers in a
search-disjunction.
Although I am not sure why at the moment, that optimization
incorrectly broke higher level boolean queries, but reverting so that
functionality is restored.
In this commit, I saw that there was a simple incrementBytes()
implementation elsewhere in bleve that seemed simpler than using the
big int package.
Edge case note: if the input bytes would overflow in incrementBytes(),
such as with an input of [0xff 0xff 0xff], it returns nil. moss then
treats a nil endKeyExclusive iterator param as a logical
"higher-than-topmost" key, which produces the prefix iteration
behavior that we want for this edge situation.
The LowerCaseFilter works on the original slice to avoid allocations,
so skipping already lowercased runes avoids unnecessary work.
benchmark old ns/op new ns/op delta
BenchmarkLowerCaseFilter-8 1302 815 -37.40%
Disjunction searchers are used heavily by higher-level searchers, like
prefix searchers. In that case, a disjunction searcher might have
many thousands of child searchers.
This commit adds an optimization to close each child term searcher as
soon as a child searcher is finished and remove it from the
disjunction searcher's children.