allow KNN cursors

This commit is contained in:
Josh Baker 2017-07-24 08:42:12 -07:00
parent 300635727a
commit 3fae3f70eb
2 changed files with 6 additions and 3 deletions

View File

@ -154,7 +154,7 @@ func (sw *scanWriter) writeHead() {
func (sw *scanWriter) writeFoot() {
sw.mu.Lock()
defer sw.mu.Unlock()
cursor := sw.numberItems + sw.cursor
cursor := sw.cursor + sw.numberItems
if !sw.hitLimit {
cursor = 0
}
@ -275,9 +275,13 @@ func (sw *scanWriter) writeObject(opts ScanWriterParams) bool {
return true
}
sw.count++
if sw.count <= sw.cursor {
return true
}
if sw.output == outputCount {
return true
}
switch sw.msg.OutputType {
case server.JSON:
var wr bytes.Buffer

View File

@ -93,8 +93,7 @@ func (c *Controller) cmdSearchArgs(cmd string, vs []resp.Value, types []string)
if cmd == "nearby" {
// possible that this is KNN search
s.knn = s.searchScanBaseTokens.ulimit && // must be true
!s.searchScanBaseTokens.usparse && // must be false
s.searchScanBaseTokens.cursor == 0 // must be zero
!s.searchScanBaseTokens.usparse // must be false
}
if !s.knn {
err = errInvalidArgument(slat)