0
0
Fork 0

searcher_docid: catch DocIDReader.Close() possible error

This commit is contained in:
Patrick Mezard 2015-11-04 19:24:01 +01:00
parent ff7234d893
commit 19230b2f8a
1 changed files with 10 additions and 3 deletions

View File

@ -24,17 +24,24 @@ type DocIDSearcher struct {
scorer *scorers.ConstantScorer
}
func NewDocIDSearcher(indexReader index.IndexReader, ids []string, boost float64, explain bool) (*DocIDSearcher, error) {
func NewDocIDSearcher(indexReader index.IndexReader, ids []string, boost float64,
explain bool) (searcher *DocIDSearcher, err error) {
kept := make([]string, len(ids))
copy(kept, ids)
sort.Strings(kept)
if len(ids) > 0 {
idReader, err := indexReader.DocIDReader(kept[0], kept[len(kept)-1])
var idReader index.DocIDReader
idReader, err = indexReader.DocIDReader(kept[0], kept[len(kept)-1])
if err != nil {
return nil, err
}
defer idReader.Close()
defer func() {
if cerr := idReader.Close(); err == nil && cerr != nil {
err = cerr
}
}()
j := 0
for _, id := range kept {
doc, err := idReader.Advance(id)