summaryrefslogtreecommitdiffstats
path: root/searchlib
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #13560 from vespa-engine/arnej/follow-std-rulesArne H Juul2020-06-122-11/+27
|\ | | | | revert back to getting random number in the [0,1) range
| * revert back to getting random number in the [0,1) rangeArne Juul2020-06-122-11/+27
| | | | | | | | | | | | | | | | | | * for whatever reason, std::uniform_real_distribution doesn't allow a>b when specifying the [a,b) half-open range. So we need to get a number from [0,1) and then do (1.0-unif) to convert to the (0,1] range that we want. * extend the unit test with more initial numbers, and write it in a more compact way.
* | unit test two-phase addArne Juul2020-06-111-0/+56
| |
* | rename internal prepare resultArne Juul2020-06-112-13/+13
| |
* | remove stub implementations in NearestNeighborIndexArne Juul2020-06-112-14/+11
| | | | | | | | | | * make API pure virtual * implement something that will work in mock
* | wire in new prepare/complete APIArne Juul2020-06-112-2/+32
| |
* | split HnswIndex::add_documentArne Juul2020-06-112-15/+57
|/ | | | | | * search part now done in a read-only prepare phase * check if selected neighbors are still valid when completing add_document request, to prepare for multi-threaded indexing
* tighten guard holdingArne Juul2020-06-101-5/+9
| | | | | | also: * constify where possible * use uniform_real_distribution to invert range for us
* protect RNG with mutexArne Juul2020-06-101-0/+4
|
* Merge pull request #13526 from ↵Geir Storli2020-06-104-1/+85
|\ | | | | | | | | vespa-engine/geirst/tensor-two-phase-operation-api Add APIs to support setting a tensor and update nearest neighbor inde…
| * Add APIs to support setting a tensor and update nearest neighbor index as ↵Geir Storli2020-06-104-1/+85
| | | | | | | | | | | | two-phase operations. This will enable using multiple threads to update the nearest neighbor index.
* | Merge pull request #13500 from ↵Henning Baldersheim2020-06-105-61/+75
|\ \ | | | | | | | | | | | | vespa-engine/revert-13499-revert-13490-balder/fetch-and-merge-a-cacheline Revert "Revert "When we pull in a cacheline, we should use it too.""
| * | - Compute batch size in one place.Henning Baldersheim2020-06-091-11/+12
| | | | | | | | | | | | - Compute offset in one place.
| * | Revert "Revert "When we pull in a cacheline, we should use it too.""Henning Baldersheim2020-06-085-60/+73
| | |
* | | Merge pull request #13518 from ↵Geir Storli2020-06-098-66/+62
|\ \ \ | | | | | | | | | | | | | | | | vespa-engine/toregge/handle-fetchpostings-being-called-multiple-times Handle fetchPostings being called multiple times.
| * | | Handle fetchPostings being called multiple times.Tor Egge2020-06-098-66/+62
| | |/ | |/|
* | | construct HnswGraph::EntryNode directlyArne Juul2020-06-095-29/+15
| | |
* | | store entry docid/level in an atomic valueArne Juul2020-06-097-38/+81
|/ /
* | keep createFilterSearch public in subclassesArne Juul2020-06-091-5/+3
| |
* | Merge pull request #13501 from ↵Arne H Juul2020-06-093-14/+14
|\ \ | | | | | | | | | | | | vespa-engine/arnej/global-filter-after-fetch-postings Arnej/global filter after fetch postings
| * | no fallback to brute force for nowArne Juul2020-06-082-5/+3
| | |
| * | do estimates like before, broke unit testArne Juul2020-06-081-3/+4
| | |
| * | perform TopK in set_global_filterArne Juul2020-06-072-11/+12
| | | | | | | | | | | | | | | * global filter must be computed after fetchPostings, so move actual TopK computation.
* | | implement createFilterSearch in MemoryTermBlueprintArne Juul2020-06-081-0/+8
| | |
* | | Merge pull request #13505 from ↵Geir Storli2020-06-081-1/+0
|\ \ \ | | | | | | | | | | | | | | | | vespa-engine/toregge/remove-unused-variable-in-attribute-blueprint-test Remove unused variable in attribute blueprint test.
| * | | Remove unused variable in attribute blueprint test.Tor Egge2020-06-081-1/+0
| | | |
* | | | Merge pull request #13504 from vespa-engine/arnej/empty-is-emptyGeir Storli2020-06-082-3/+8
|\ \ \ \ | |/ / / |/| | | empty blueprint must create empty filter iterator
| * | | empty blueprint must create empty filter iteratorArne Juul2020-06-082-3/+8
| | |/ | |/|
| * | Revert "When we pull in a cacheline, we should use it too."Harald Musum2020-06-085-73/+60
| | |
| * | Merge branch 'master' into balder/fetch-and-merge-a-cachelineHenning Baldersheim2020-06-0761-605/+696
| |\|
| * | - Stick to void * and byte offsets.Henning Baldersheim2020-06-075-18/+18
| | | | | | | | | | | | - Correct spelling error.
| * | - Test both normal and inverted bit vectors.Henning Baldersheim2020-06-071-3/+4
| | | | | | | | | | | | | | | - Use 64 byte alignment of buffer. - Improve error messages.
| * | Use c++11 for loop.Henning Baldersheim2020-06-051-2/+2
| | |
| * | When we pull in a cacheline, we should use it too.Henning Baldersheim2020-06-042-45/+57
| | | | | | | | | | | | There is possibly wasting 7/8 of it and very likely suffer a cache miss.
* | | more TODOs and cleanupArne Juul2020-06-054-10/+13
| |/ |/|
* | Merge pull request #13488 from vespa-engine/arnej/use-vector-of-UP-1Arne H Juul2020-06-0561-603/+694
|\ \ | |/ |/| use vector of UP as MultiSearch::Children
| * adjust to use std::make_uniqueArne Juul2020-06-051-2/+10
| |
| * add TODOs about further use of unique_ptrArne Juul2020-06-058-0/+9
| |
| * use vector of UP as MultiSearch::ChildrenArne Juul2020-06-0457-603/+677
| | | | | | | | | | | | * add helper class for constructing MultiSearch::Children (mostly for unit tests) * rewrite as needed to adapt
* | Fix typo in class comment.Tor Egge2020-06-031-1/+1
| |
* | Add NativeFieldMatchExecutorSharedState.Tor Egge2020-06-033-43/+97
|/
* Ensure sequential consistency.Henning Baldersheim2020-06-031-0/+1
|
* Protect against inconsistency when sampling size and capacity.Henning Baldersheim2020-06-031-0/+6
|
* As the source bit vector might change in a different thread,Henning Baldersheim2020-06-022-8/+23
| | | | ensure that we sample size once to avoid incosistent read outs during copy.
* Add NativeProximityExecutorSharedState.Tor Egge2020-06-023-75/+133
|
* Merge pull request #13421 from vespa-engine/arnej/more-intermediate-filtersArne H Juul2020-06-026-14/+102
|\ | | | | Arnej/more intermediate filters
| * more general helper function, use it from AND alsoArne Juul2020-05-291-49/+33
| |
| * use helper method instead of inheritanceArne Juul2020-05-292-17/+33
| |
| * make more intermediate operators implement createFilterSearchArne Juul2020-05-284-4/+80
| | | | | | | | | | | | | | | | * Rank just returns filter from first child * Near degrades to AND in the UPPER_BOUND case * ONear degrades to AND in the UPPER_BOUND case * SourceBlender degrades to OR in the UPPER_BOUND case * Phrase degrades to AND in the UPPER_BOUND case
| * equiv filter is equivalent to ORArne Juul2020-05-282-0/+12
| |