aboutsummaryrefslogtreecommitdiffstats
path: root/searchlib/src/vespa/searchlib/query/streaming/querynode.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Fix typo in getter-functionTor Brede Vekterli2024-04-231-2/+2
|
* Wire fuzzy prefix matching support through the query stackTor Brede Vekterli2024-04-191-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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...!
* Rewrite is disabled for nodes below SameElementQueryNode.Tor Egge2024-03-181-6/+4
|
* Change parent class of search::streaming::SameElementQueryNode fromTor Egge2024-03-181-4/+24
| | | | search::streaming::AndQueryNode to search:streaming::MultiTerm.
* Use filter settings from rank profiles and query terms in streaming search.Tor Egge2024-03-151-0/+1
|
* Adjust rewriting of number terms for string fields in streaming search.Tor Egge2024-03-051-9/+30
|
* - Hide recall terms from ranking.Henning Baldersheim2024-02-191-0/+1
| | | | - Add noexcept.
* Handle search::streaming::EquivQueryNode as a leaf in the query tree.Tor Egge2024-02-091-5/+35
|
* Stop getting phrase index from subterm in streaming mode.Tor Egge2024-02-061-5/+5
|
* Empty index => 'default' indexHenning Baldersheim2024-02-061-2/+1
|
* Handle search::streaming::PhraseQueryNode as a leaf in the query tree.Tor Egge2024-02-061-0/+6
|
* Wire QueryNormalization in to JuniperQueryAdapter and use it there.Henning Baldersheim2024-02-051-25/+2
|
* Change parent class of search::streaming::PhraseQueryNode fromTor Egge2024-02-021-4/+23
| | | | search::streaming::AndQueryNode to search::streaming::MultiTerm.
* Merge pull request #30027 from vespa-engine/arnej/implement-rank-with-operatorHenning Baldersheim2024-01-231-11/+1
|\ | | | | actually implement RANK operator
| * actually implement RANK operatorArne Juul2024-01-231-11/+1
| |
* | Move out NearQueryNode, ONearQueryNode, PhraseQueryNode andTor Egge2024-01-231-0/+3
|/ | | | SameElementQueryNode to separate files.
* Support fuzzy term matching in streaming searchTor Brede Vekterli2024-01-181-8/+8
| | | | | | | | | | 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
* Add regular expression support to streaming searchTor Brede Vekterli2024-01-151-1/+7
| | | | | | | | | | | | | | 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.
* Add WeightedSetTerm for streaming search.Tor Egge2024-01-151-2/+14
|
* Calculate raw score for streaming search wand.Tor Egge2024-01-121-5/+17
|
* - Fold query for streaming search based on either query item type, or field ↵Henning Baldersheim2024-01-051-20/+19
| | | | | | | | 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.
* Check cheapest condition first.Henning Baldersheim2024-01-031-1/+1
|
* Revert "Revert "Balder/only rewrite numeric terms for text fields""Henning Baldersheim2024-01-031-1/+1
|
* Revert "Balder/only rewrite numeric terms for text fields"Henning Baldersheim2024-01-031-1/+1
|
* Only rewrite numeric terms when searching text fields.Henning Baldersheim2024-01-021-1/+1
|
* Code modernization and minor rewrite to avoid hard to read negations.Henning Baldersheim2024-01-011-18/+20
|
* Add DotProductTerm for streaming search.Tor Egge2023-12-131-8/+56
|
* Remove type argument to search::streaming::InTerm constructor.Tor Egge2023-12-071-1/+1
| | | | Test InTerm::evaluate().
* Add MultiTerm and InTerm for streaming search.Tor Egge2023-12-071-0/+6
|
* Update copyrightJon Bratseth2023-10-091-1/+1
|
* Use targetHits in nearestNeighbor streaming searcher.Geir Storli2023-04-251-5/+7
| | | | A distance heap is used to limit the number of produced document matches.
* Add NearestNeighborQueryNode.Tor Egge2023-04-171-0/+20
|
* Propagating annotations for fuzzy queryAlexey Chernyshev2022-04-071-0/+4
|
* Introducing fuzzy searchAlexey Chernyshev2022-03-231-0/+4
|
* convert ITEM_GEO_LOCATION_TERM to something usefulArne H Juul2022-01-281-5/+6
|
* add ITEM_TRUE and ITEM_FALSE query nodesArne H Juul2021-10-181-0/+6
|
* Update 2017 copyright notices.gjoranv2021-10-071-1/+1
|
* - Model as having children, as opposed to being children.Henning Baldersheim2021-04-231-6/+5
|
* - Prevent the rewrite that happens with equiv and phrase to handle floating ↵Henning Baldersheim2021-04-221-4/+11
| | | | | | point queries in string fields, from happening in under a same-element node. - Add raw stackdump from previously failing query.
* - Let DotProduct,Wand and WeightedSet be Term nodes in the query tree as ↵Henning Baldersheim2021-03-291-5/+11
| | | | | | | | they really are. That restricts the nodes to what they can really do and makes them significantly cheaper. - In addition type conversion of numeric terms is delayed to when it is necessary. And as next step they can be avoided completely.
* Make the SearchTerm enum a small scoped enum and rename to Type.Henning Baldersheim2021-03-041-11/+12
|
* fix bugsArne Juul2020-07-151-5/+2
|
* explicit no-handling of location for streamingArne Juul2020-07-151-1/+9
|
* more descriptive enum name for geo location termArne Juul2020-07-151-1/+1
|
* clean up various issues with ParseItem classArne Juul2020-07-091-0/+1
| | | | | | | | | | | * SimpleQueryStack only used for one unit test, move it there * Actual instances of ParseItem also only used for same unit test. Split out the object representation into a separate SimpleQueryStackItem class in the unit test directory. * give location ITEM_LOCATION_TERM instead of overloading NUMTERM * ParseItem::ITEM_PAREN never used for anything, remove it * add comment for removal of PAREN enum in prelude/query/Item.java * refactor flag handling with one method per flag
* be more specific in StackDumpIterator APIArne Juul2020-03-021-1/+1
|
* 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/+160
sub-library.