From 54b06ce0f693d35f8a75a1f51a8e850f67492fd8 Mon Sep 17 00:00:00 2001 From: Marty Schoch Date: Tue, 21 Jun 2016 09:00:05 -0400 Subject: [PATCH] fix bug in regexp, prefix and fuzzy searchers these searchers incorrectly called Next() on their underlying searcher, instead of Advance(). this can cause values to be returned with an ID less than the one that was Advanced() to, which violates the contract, and causes other incorrect behavior. fixes #342 --- search/searchers/search_fuzzy.go | 2 +- search/searchers/search_regexp.go | 2 +- search/searchers/search_term_prefix.go | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/search/searchers/search_fuzzy.go b/search/searchers/search_fuzzy.go index 37f5e9ed..52c13e83 100644 --- a/search/searchers/search_fuzzy.go +++ b/search/searchers/search_fuzzy.go @@ -113,7 +113,7 @@ func (s *FuzzySearcher) Next() (*search.DocumentMatch, error) { } func (s *FuzzySearcher) Advance(ID string) (*search.DocumentMatch, error) { - return s.searcher.Next() + return s.searcher.Advance(ID) } func (s *FuzzySearcher) Close() error { diff --git a/search/searchers/search_regexp.go b/search/searchers/search_regexp.go index 8624efd4..00dff8bb 100644 --- a/search/searchers/search_regexp.go +++ b/search/searchers/search_regexp.go @@ -112,7 +112,7 @@ func (s *RegexpSearcher) Next() (*search.DocumentMatch, error) { } func (s *RegexpSearcher) Advance(ID string) (*search.DocumentMatch, error) { - return s.searcher.Next() + return s.searcher.Advance(ID) } func (s *RegexpSearcher) Close() error { diff --git a/search/searchers/search_term_prefix.go b/search/searchers/search_term_prefix.go index 8fefee0a..606bc5aa 100644 --- a/search/searchers/search_term_prefix.go +++ b/search/searchers/search_term_prefix.go @@ -76,7 +76,7 @@ func (s *TermPrefixSearcher) Next() (*search.DocumentMatch, error) { } func (s *TermPrefixSearcher) Advance(ID string) (*search.DocumentMatch, error) { - return s.searcher.Next() + return s.searcher.Advance(ID) } func (s *TermPrefixSearcher) Close() error {