summaryrefslogtreecommitdiffstats
path: root/searchlib
Commit message (Collapse)AuthorAgeFilesLines
* Adjust search::streaming::Hit to better matchTor Egge2024-01-226-119/+133
| | | | search::fef::TermFieldMatchDataPosition.
* Merge pull request #29997 from ↵Henning Baldersheim2024-01-211-1/+0
|\ | | | | | | | | vespa-engine/toregge/remove-unused-member-variable-from-search-streaming-weighted-set-term Remove unused member variable from search::streaming::WeightedSetTerm.
| * Remove unused member variable from search::streaming::WeightedSetTerm.Tor Egge2024-01-211-1/+0
| |
* | Include ostream header to get definition of std::ostreamTor Egge2024-01-211-0/+1
|/
* Merge pull request #29980 from ↵Jon Bratseth2024-01-211-1/+1
|\ | | | | | | | | vespa-engine/arnej/reset-implicit-inherit-on-empty-feature-list fix semantics for empty feature lists
| * fix semantics for empty feature listsArne Juul2024-01-191-1/+1
| | | | | | | | | | | | * allow FeatureList to parse empty input and return empty list * if an empty feature list block is specified in a rank-profile, trigger that we no longer get the implicit inheritance
* | Merge pull request #29984 from vespa-engine/geirst/hash-filter-for-in-operatorHenning Baldersheim2024-01-199-38/+244
|\ \ | | | | | | Support hash filter iterator in DirectMultiTermBlueprint.
| * | Support hash filter iterator in DirectMultiTermBlueprint.Geir Storli2024-01-199-38/+244
| | | | | | | | | | | | | | | This is used in some non-strict cases, and should improve IN operator performance: https://github.com/vespa-engine/system-test/tree/master/tests/performance/in_operator.
* | | Remove unused search::streaming::Hit::operator<().Tor Egge2024-01-191-2/+0
| | |
* | | Merge pull request #29969 from ↵Tor Brede Vekterli2024-01-196-8/+94
|\ \ \ | | | | | | | | | | | | | | | | vespa-engine/vekterli/support-fuzzy-matching-in-streaming-search Support fuzzy term matching in streaming search
| * | | Support fuzzy term matching in streaming searchTor Brede Vekterli2024-01-186-8/+94
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | Uses a DFA-based matcher for max edits in {1, 2} and falls back to the legacy non-DFA matcher for all other values (including 0). Currently only supports fuzzy matching across the full field string, i.e. there's no implicit tokenization or whitespace removal. This matches the semantics we currently have for fuzzy search over attributes in a non-streaming case
* | | Merge pull request #29979 from ↵Geir Storli2024-01-193-9/+1
|\ \ \ | | | | | | | | | | | | | | | | vespa-engine/toregge/make-search-streaming-queryterm-evaluate-hits-member-function-final Make search::streaming::QueryTerm::evaluateHits() member function final.
| * | | Make search::streaming::QueryTerm::evaluateHits() member function final.Tor Egge2024-01-193-9/+1
| |/ /
* / / Rename search::streaming::Hit member function context() to field_id().Tor Egge2024-01-186-24/+24
|/ /
* | Merge pull request #29965 from vespa-engine/balder/make-tensor-impl-packageHenning Baldersheim2024-01-181-1/+2
|\ \ | |/ |/| Balder/make tensor impl package
| * Skip copying of array when there is no reuse possible.Henning Baldersheim2024-01-181-1/+2
| |
* | Merge pull request #29964 from ↵Tor Egge2024-01-184-7/+18
|\ \ | | | | | | | | | | | | vespa-engine/vekterli/use-string-view-for-non-dict-match Use `string_view` for standalone DFA fuzzy match function
| * | Use `string_view` for standalone DFA fuzzy match functionTor Brede Vekterli2024-01-184-7/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is to allow for matching non-zero terminated strings, which will be needed if we are to support fuzzy matching of streaming tokenized terms. Note that the underlying DFA API already takes in a string_view, so this is just moving an implicit `strlen` one step higher in the stack. This will pull the string data into the CPU cache ever so slightly earlier than before, but this is not expected to matter in practice since the data will be used immediately after anyway. Added explicit `string_view` instantiations at the call sites to make implicit `strlen` more obviously visible than they currently are with implicit type conversions from `const char*`. Also adds a utility constructor to hide default underlying DFA implementation.
* | | Stop using MultiTermOrFilterSearch for InTerm and WeightedSetTerm.Geir Storli2024-01-187-80/+93
| |/ |/| | | | | | | | | | | Benchmarking the IN operator (https://github.com/vespa-engine/system-test/tree/master/tests/performance/in_operator) has shown that the heap-based implementation in WeightedSetTermSearchImpl is on par when having fewer than 10 tokens/terms, and significantly better the more tokens/terms the operator contains.
* | Merge pull request #29660 from vespa-engine/balder/sliced-parallell-orv8.288.15Henning Baldersheim2024-01-164-2/+124
|\ \ | | | | | | Slice the vectors and use 1 thread per slice when computing the OR.
| * | Improve comment and make assert more explicit.Henning Baldersheim2024-01-162-4/+3
| | |
| * | Allow to use only some threads.Henning Baldersheim2024-01-161-8/+9
| | |
| * | No need to special handle the first.Henning Baldersheim2024-01-151-3/+2
| | |
| * | Merge branch 'balder/sliced-parallell-or' of github.com:vespa-engine/vespa ↵Henning Baldersheim2024-01-151-1/+0
| |\ \ | | | | | | | | | | | | into balder/sliced-parallell-or
| | * \ Merge branch 'master' into balder/sliced-parallell-orHenning Baldersheim2024-01-15129-1940/+2987
| | |\ \
| * | \ \ Merge branch 'master' into balder/sliced-parallell-orHenning Baldersheim2024-01-15129-1940/+2987
| |\ \ \ \ | | |/ / / | |/| / / | | |/ /
| * | | Slice the vectors and use 1 thread per slice when computing the OR.Henning Baldersheim2023-12-144-2/+125
| | | |
* | | | Rename MultiTermFilter to MultiTermHashFilter.Geir Storli2024-01-163-13/+13
| |_|/ |/| |
* | | Propagate normalizing mode and max field length to new searcherTor Brede Vekterli2024-01-162-0/+21
| | | | | | | | | | | | | | | Needed to avoid default normalizing mode/max field length being used in the reconfigured searcher instance.
* | | Merge pull request #29913 from ↵Henning Baldersheim2024-01-166-1/+68
|\ \ \ | | | | | | | | | | | | | | | | vespa-engine/vekterli/streaming-search-regex-support Add regular expression support to streaming search
| * | | Add regular expression support to streaming searchTor Brede Vekterli2024-01-156-1/+68
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Introduces an explicit regex query term node (which wraps an RE2 regex instance internally) and extends the existing UTF-8 flexible string searcher to use this query node. Regex matching is optionally case (in)sensitive depending on the normalization mode used. Note on `searcher/searcher_test.cpp`: this adds a magic sentinel `#` char prefix to query term parsing in the test to let a query term be interpreted as a regex rather than exact/prefix/suffix/substring match.
* | | | Merge pull request #29915 from vespa-engine/havardpe/strict-flowv8.287.20Henning Baldersheim2024-01-166-118/+445
|\ \ \ \ | | | | | | | | | | take strictness into account for flow/cost/sorting
| * | | | make sure empty AND/OR/ANDNOT flow estimates 0.0 regardless of input flowHåvard Pettersen2024-01-153-7/+10
| | | | |
| * | | | take strictness into account for flow/cost/sortingHåvard Pettersen2024-01-156-118/+442
| |/ / / | | | | | | | | | | | | | | | | | | | | use common code with adapters make cost calculation const (sort index, not children) empty AND/ANDNOT estimate now equals input flow
* / / / Remove dead code from streaming search.Tor Egge2024-01-151-2/+0
|/ / /
* | | Add comment for streaming search weighted set term unit test.Tor Egge2024-01-151-0/+6
| | |
* | | Add WeightedSetTerm for streaming search.Tor Egge2024-01-157-4/+127
| | |
* | | Deinline destructors in unit tests.Tor Egge2024-01-152-0/+9
| |/ |/|
* | Merge pull request #29879 from ↵Tor Egge2024-01-129-15/+177
|\ \ | | | | | | | | | | | | vespa-engine/toregge/dot-product-raw-score-for-streaming-search-wand Calculate raw score for streaming search wand.
| * | Rename constants and add comment for streaming search wand term unit test.Tor Egge2024-01-121-11/+17
| | |
| * | Calculate raw score for streaming search wand.Tor Egge2024-01-129-15/+171
| | |
* | | Reapply Use optimized implementation for IN query operator.Geir Storli2024-01-121-22/+32
|/ /
* | Merge pull request #29862 from ↵Henning Baldersheim2024-01-111-3/+12
|\ \ | | | | | | | | | | | | vespa-engine/geirst/cache-docids-to-reduce-cache-misses Cache docids from iterators to reduce cache misses.
| * | Cache docids from iterators to reduce cache misses.Geir Storli2024-01-111-3/+12
| | |
* | | Merge pull request #29860 from vespa-engine/balder/remove-assertTor Egge2024-01-112-2/+2
|\ \ \ | | | | | | | | Remove assert that does not hold if alignment is changed. The assert …
| * | | Remove assert that does not hold if alignment is changed. The assert ↵Henning Baldersheim2024-01-112-2/+2
| | | | | | | | | | | | | | | | provides not added value.
* | | | Handle deserialize bitvector after alignment change.Tor Egge2024-01-111-3/+14
|/ / /
* | | Merge pull request #29853 from ↵Henning Baldersheim2024-01-111-0/+15
|\ \ \ | | | | | | | | | | | | | | | | vespa-engine/toregge/add-workaround-for-limited-std-from-chars Add workaround for limited std::from_chars.
| * | | Add workaround for limited std::from_chars.Tor Egge2024-01-111-0/+15
| |/ /
* / / Add cast to select constructor overload.Tor Egge2024-01-112-2/+2
|/ /