aboutsummaryrefslogtreecommitdiffstats
path: root/searchlib/src/vespa/searchlib/query/streaming/queryterm.h
Commit message (Collapse)AuthorAgeFilesLines
* Wire fuzzy prefix matching support through the query stackTor Brede Vekterli2024-04-191-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adds `prefix:[true|false]` annotation support to the `fuzzy` query operator in the YQL and JSON query languages. Fuzzy prefix matching semantics are wired through to the matcher implementations for both indexed and streaming search. Example usage: {maxEditDistance:1,prefix:true}fuzzy("foo") Will match `foo`, `foobar`, `foxtrot`, `zookeeper` and so on. It can be combined with the existing prefix locking feature: {maxEditDistance:1,prefixLength:2,prefix:true}fuzzy("foo") Which will match `foo`, `foobar`, `foxtrot` etc, but _not_ `zookeeper` since the locked prefix (`fo`) does not match. Due to the complexities involved with extending the legacy binary query stack representation, signalling prefix matching for the fuzzy term is done by pragmatically adding a new, generic "prefix matching" term-level flag. This is currently ignored for everything except fuzzy query items. Modernizing the query stack format to make it more extensible (i.e. move encoding to Protobuf) is on the backlog...!
* Reapply add virtual fields to index environment for streaming mode.Tor Egge2024-03-201-0/+1
|
* Revert "Add virtual fields to index environment for streaming mode."Henning Baldersheim2024-03-191-1/+0
|
* Add virtual fields to index environment for streaming mode.Tor Egge2024-03-191-0/+1
|
* Use multi_index_terms() returning boolean to differentiate betweenTor Egge2024-03-181-1/+1
| | | | | | multi term nodes that all searches the same index (e.g. Phrase) and multi term nodes that searches multiple indexes (e.g. Equiv, SameElement).
* Change parent class of search::streaming::SameElementQueryNode fromTor Egge2024-03-181-1/+1
| | | | search::streaming::AndQueryNode to search:streaming::MultiTerm.
* Use filter settings from rank profiles and query terms in streaming search.Tor Egge2024-03-151-2/+6
|
* - Hide recall terms from ranking.Henning Baldersheim2024-02-191-3/+6
| | | | - Add noexcept.
* Reduce code duplication.Tor Egge2024-02-091-1/+2
|
* Handle search::streaming::EquivQueryNode as a leaf in the query tree.Tor Egge2024-02-091-0/+3
|
* Handle search::streaming::PhraseQueryNode as a leaf in the query tree.Tor Egge2024-02-061-4/+0
|
* Add unpack_match_data member function to search::streaming::QueryTerm.Tor Egge2024-02-051-0/+8
|
* Change parent class of search::streaming::PhraseQueryNode fromTor Egge2024-02-021-1/+1
| | | | search::streaming::AndQueryNode to search::streaming::MultiTerm.
* Track element length in streaming mode.Tor Egge2024-01-251-1/+2
|
* Adjust search::streaming::Hit to better matchTor Egge2024-01-221-1/+1
| | | | search::fef::TermFieldMatchDataPosition.
* Merge pull request #29969 from ↵Tor Brede Vekterli2024-01-191-0/+2
|\ | | | | | | | | 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-181-0/+2
| | | | | | | | | | | | | | | | | | | | 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
* | Make search::streaming::QueryTerm::evaluateHits() member function final.Tor Egge2024-01-191-1/+1
|/
* Add regular expression support to streaming searchTor Brede Vekterli2024-01-151-0/+2
| | | | | | | | | | | | | | 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.
* - Fold query for streaming search based on either query item type, or field ↵Henning Baldersheim2024-01-051-4/+6
| | | | | | | | definition. - This ensures that query processing and document processing is symmetric for streaming search. No longer rely on java query processing being symmetric with backend c++ variant. - Indexed search does no normalization in backend and uses query as is.
* Code modernization and minor rewrite to avoid hard to read negations.Henning Baldersheim2024-01-011-1/+1
|
* Add MultiTerm and InTerm for streaming search.Tor Egge2023-12-071-0/+2
|
* Standard plural of leaf is leaves.Tor Egge2023-11-301-2/+2
|
* Update copyrightJon Bratseth2023-10-091-1/+1
|
* Use WordFolder as helper instead of inheriting static stuff.Henning Baldersheim2023-07-251-1/+0
|
* Add NearestNeighborQueryNode.Tor Egge2023-04-171-1/+4
|
* Change from typedef to using in searchlib C++ code.Geir Storli2022-12-211-1/+1
|
* Addressed PR commentsAlexey Chernyshev2022-04-111-2/+0
|
* Propagating annotations for fuzzy queryAlexey Chernyshev2022-04-071-0/+4
|
* GC cloneableHenning Baldersheim2022-03-031-2/+1
|
* Add noexcept specifiers.Tor Egge2021-12-111-1/+1
|
* Update 2017 copyright notices.gjoranv2021-10-071-1/+1
|
* Remove default constructors and simplify.Henning Baldersheim2021-03-051-1/+0
| | | | Use atomic pointer to get proper memory visibility.
* No move or copy construction.Henning Baldersheim2021-03-041-2/+4
|
* Keep only one ucs4 buffer, and create the buffer lazy.Henning Baldersheim2021-03-041-4/+2
|
* Make the SearchTerm enum a small scoped enum and rename to Type.Henning Baldersheim2021-03-041-1/+1
|
* Add noexcept to move constructors and operatorsHenning Baldersheim2020-01-211-2/+2
|
* Move query classes used in streaming search to namespace search::streaming.Geir Storli2019-11-281-1/+1
|
* Move query classes used in streaming search to separate sub-folder and ↵Geir Storli2019-11-281-0/+104
sub-library.