0
0
Fork 0
Commit Graph

1324 Commits

Author SHA1 Message Date
Marty Schoch a16efa5e78 add experimental support for indexing/query geo points
New field type GeoPointField, or "geopoint" in mapping JSON.

Currently structs and maps are considered when a mapping explicitly
marks a field as type "geopoint".  Several variants of "lon", "lng", and "lat"
are looked for in map keys, struct field names, or method names.

New query type GeoBoundingBoxQuery searches for documents which have a
GeoPointField indexed with a value that is inside the specified bounding box.

New query type GeoDistanceQuery searches for documents which have a
GeoPointField indexed with a value that is less than or equal to the
specified distance from the specified location.

New sort by method "geo_distance".  Hits can be sorted by their distance
from the specified location.

New geo utility package with all routines ported from Lucene.

New FilteringSearcher, which wraps an existing Searcher, but filters
all hits with a user-provided callback.
2017-03-24 17:22:21 -07:00
Marty Schoch 4fe6f97f44 Merge pull request #552 from steveyen/collector-benchmarks
more collector benchmarks with larger sizes
2017-03-16 17:07:37 -04:00
Steve Yen 088953fbb6 more collector benchmarks with larger sizes 2017-03-16 13:46:28 -07:00
Marty Schoch 4eee341e04 Merge pull request #551 from mschoch/fix-query-string-neg
fix query string parsing of numeric ranges with negative value
2017-03-16 11:39:39 -04:00
Marty Schoch 0aab8d7fb9 fix query string parsing of numeric ranges with negative value
fixes #550
2017-03-16 11:11:28 -04:00
Marty Schoch 1bcfe4efa1 Merge pull request #546 from sreekanth-cb/store_abort_close
Store abort close
2017-03-07 12:35:18 -05:00
Sreekanth Sivasankaran f759d841c2 Adding guards for config casting. 2017-03-07 22:51:27 +05:30
Sreekanth Sivasankaran 0cdd0b38e2 Merge branch 'store_abort_close' of https://github.com/sreekanth-cb/bleve into store_abort_close 2017-03-07 19:57:16 +05:30
Sreekanth Sivasankaran e88ff3c60a Merge branch 'store_abort_close' of https://github.com/sreekanth-cb/bleve into store_abort_close
Syntax change for errcheck tool
2017-03-07 19:56:08 +05:30
Sreekanth Sivasankaran 9795e12d27 Merge branch 'store_abort_close' of https://github.com/sreekanth-cb/bleve into store_abort_close 2017-03-07 19:36:13 +05:30
Sreekanth Sivasankaran ee819f5950 MB-22410 - Configurable forced Store Abort API
Adding a configurable forced store close
Bumping the moss store version
2017-03-07 19:33:51 +05:30
Marty Schoch 9bdfb4c6cd Merge pull request #548 from mschoch/fix-perf-regression
fix perf regression, unnecessarily loading backindex
2017-03-04 15:39:00 -05:00
Marty Schoch bc7d8e3b35 fix perf regression, unnecessarily loading backindex 2017-03-04 15:23:16 -05:00
Marty Schoch 75d75bf1bc Merge pull request #547 from mschoch/facets_less_garbage
reduce garbage created while processing facets
2017-03-02 17:23:52 -05:00
Marty Schoch 0eba2a3f0c reduce garbage created while processing facets
previously we parsed/returned large sections of the documents
back index row in order to compute facet information.  this
would require parsing the protobuf of the entire back index row.
unfortunately this creates considerable garbage.

this new version introduces a visitor/callback approach to
working with data inside the back index row.  the benefit
of this approach is that we can let the higher-level code
see values, prior to any copies of data being made or
intermediate garbage being created.  implementations of
the callback must copy any value which they would like to
retain beyond the callback.

NOTE: this approach is duplicates code from the
automatically generated protobuf code

NOTE: this approach assumes that the "field" field be serialized
before the "terms" field.  This is guaranteed by our currently
generated protobuf encoder, and is recommended by the protobuf
spec.  But, decoders SHOULD support them occuring in any order,
which we do not.
2017-03-02 17:00:46 -05:00
Marty Schoch b04745abcc remove smolder indexing scheme
this was an experiment that we're no longer working on
we learned from it, but now carrying it forward has
a maintenance burden we don't wish to pay
2017-03-01 14:38:17 -05:00
Sreekanth Sivasankaran 67a5814fbe MB-22410:deleting/editing index definition with large dirty write queue can be very slow
Adding a configurable forced store close
2017-03-01 18:58:32 +05:30
Sreekanth Sivasankaran 324e4237cf adding configurable Abort Close 2017-03-01 16:23:56 +05:30
Marty Schoch a7ebb84805 Merge pull request #544 from mschoch/work_on_query_string_parser
add ability to perform exact numeric matches
2017-02-24 16:36:31 -05:00
Marty Schoch bbab4d39ee improve error checking when parsing numbers 2017-02-24 16:30:09 -05:00
Marty Schoch 3a3cd103f5 Merge pull request #545 from mschoch/better_validation
add validtion which checks the type of char/token filters
2017-02-24 16:05:00 -05:00
Marty Schoch b9db744def add validtion which checks the type of char/token filters
when specified in the custom type of analyzer
2017-02-24 15:57:10 -05:00
Marty Schoch 23bf986632 allow for exact numeric matches with field:val syntax
previously, the only way to get numeric matching was with the
range operators :> :>= :< :<=

now, when we encounter field:val if the val can be parsed as a
number, then we do a disjunction search, which includes
searching for val as a text term and as an exact numeric value
2017-02-24 13:41:59 -05:00
Marty Schoch f6563ed9f5 switch from go tool yacc to goyacc as of Go 1.8
does not imply need for Go 1.8 to use, just for developers
to regenerate the query parser
2017-02-24 09:23:00 -05:00
Marty Schoch 518abe742a Merge pull request #543 from mschoch/improve_query_string_compat
improve query string compatibility
2017-02-23 13:22:41 -05:00
Marty Schoch f391b991c2 improve query string compatibility
1) disjunction and conjunction queries now support a
"query string mode".  By default they do not operate
in this mode.  When in this mode, any disjunct/conjunct
which evaluates to MatchNone searcher, will be removed
from the disjunction/conjunction.  If the query ends
up with NO conjuncts/disjuncts, it will itself
return the MatchNone seacher.

2) boolean query also supports a query string mode.  when in
this mode, the Must, Should and MustNot searchers are all put
into query string mode.

3) rewriting of negation only queries (like -foo) now take into
account the rewriting rules above, and those are handled first.
this means that we rewrite correctly in case of +stoword -foo

4) the empty query string is now valid, and returns 0 hits.
previously this was considered a validation error.
2017-02-23 13:04:18 -05:00
Marty Schoch dbdb8b984d Merge pull request #541 from hisundar/moss_child_colls
Add Snapshot interface methods for moss child collections feature
2017-02-21 19:11:18 -05:00
Sundar Sridharan 74c7de0dcf re-order childSnapshot declaration 2017-02-21 15:54:04 -08:00
Sundar Sridharan 04d428656e Add Snapshot interface methods for moss child collections feature 2017-02-20 15:03:45 -08:00
Marty Schoch 501913b2eb Merge pull request #537 from mschoch/update-bleve-cmd
Update bleve cmd
2017-02-16 11:54:02 -05:00
Marty Schoch 9ca14d29f1 use cobra command Annotations to identify mutating commands
some downstream applications need to know which sub-commands
may alter the index.  this new function allows them to be
identified, while not prescribing any particular behavior.
2017-02-15 15:37:26 -05:00
Marty Schoch c937e971af bump manifest to latest cobra and pflag 2017-02-15 15:36:47 -05:00
Marty Schoch 5415afec73 Merge pull request #534 from tleyden/patch-1
Apache2 license badge
2017-02-13 19:38:54 -05:00
Traun Leyden ea397a24ac Apache2 license badge
Moar badges
2017-02-13 16:09:54 -08:00
Marty Schoch 8f6c032d51 Merge pull request #532 from mschoch/phrase2
move phrase search logic into phrase searcher
2017-02-10 20:26:49 -05:00
Marty Schoch 2ba915b929 add additional parens to clarify logic 2017-02-10 20:22:32 -05:00
Marty Schoch 56a79528c3 update match_phrase query to handle multiple tokens in same pos
we now use a multiphrase query in all cases
internally its optimized to be the same as regular phrase query
anyway, and we simplly map all the tokens in the stream into
a multi-phrase query with the appropriate structure
2017-02-10 17:12:13 -05:00
Marty Schoch a5d1d7974c add query support for multi-phrase
when parsing json, when we encounter the key "terms", we first
try to parse as traditional phrase query, then if that fails,
we also try parsing it as multi-phrase
2017-02-10 16:46:38 -05:00
Marty Schoch c6085d8cdc address initial code review comments 2017-02-10 15:22:14 -05:00
Marty Schoch 09d00829db phrase searcher now supports multi-phrase
backwards compatability maintained through previous constructor
very basic test added (not sufficient)
2017-02-10 15:17:50 -05:00
Marty Schoch 9c8e1e82de add initial low-level support for multi-phrase
this adds basic multi-phrase support,
a shim to keep the top-level working
and unit tests for new multi-phrase cases
2017-02-10 13:16:05 -05:00
Marty Schoch 4e38c49287 move phrase search logic into phrase searcher
the logic of how a phrase search works should be an internal
detail of the phrase searcher.  further, these changes will
allow proper scoring of phrase matches, which require access
to the underlying searcher objects, which were hidden in the
previous approach.
2017-02-10 12:05:01 -05:00
Marty Schoch 97a428f5b0 Merge pull request #531 from mschoch/losefloat
remove use of float64 to represent int things
2017-02-09 20:25:20 -05:00
Marty Schoch 8096d9fb90 remove use of float64 to represent int things
this originated from a misunderstanding of mine going back
several years.  the values need not be float64 just because
we plan to serialize them as json.

there are still larger questions about what the right type should
be, and where should any conversions go.  but, this commit
simply attempts to address the most egregious problems
2017-02-09 20:15:59 -05:00
Marty Schoch 0c87b7bff1 Merge pull request #527 from mschoch/recursive_phrase
refactor phrase search to be recursive
2017-02-09 18:10:33 -05:00
Marty Schoch 87df597b21 add 'used by' badge 2017-02-09 16:40:37 -05:00
Marty Schoch 232fc80dad add support for phrase slop to internals of phrase searcher
phrase slop is not yet supported on the frontend
added lots of tests around slop
2017-02-09 15:59:51 -05:00
Marty Schoch 4da7756f67 Merge pull request #530 from steveyen/master
optimizations around search / DocumentMatchPool
2017-02-09 15:44:04 -05:00
Steve Yen 0b70a1bcb8 use inlined prealloc'ed termFreqRow in upsidedown termFieldReader 2017-02-08 18:23:13 -08:00
Steve Yen 31fecc3663 avoid row alloc's in upsidedown termFieldReader constructor 2017-02-08 18:14:30 -08:00