mirror of https://github.com/tidwall/tile38.git
allow KNN cursors
This commit is contained in:
parent
300635727a
commit
3fae3f70eb
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue