0
0
Fork 0

first pass at checking errors that were ignored

part of #169
This commit is contained in:
Marty Schoch 2015-03-06 14:46:29 -05:00
parent a2ad7634f2
commit 300ec79c96
22 changed files with 139 additions and 61 deletions

View File

@ -47,7 +47,7 @@ func (t TokenMap) LoadBytes(data []byte) error {
return err
}
func (t TokenMap) LoadLine(line string) error {
func (t TokenMap) LoadLine(line string) {
// find the start of a comment, if any
startComment := strings.IndexAny(line, "#|")
if startComment >= 0 {
@ -58,7 +58,6 @@ func (t TokenMap) LoadLine(line string) error {
for _, token := range tokens {
t.AddToken(token)
}
return nil
}
func (t TokenMap) AddToken(token string) {

View File

@ -136,26 +136,35 @@ func init() {
// build the default configuration
Config = newConfiguration()
Config.Cache.DefineFragmentFormatter("highlightSpanHTML",
_, err := Config.Cache.DefineFragmentFormatter("highlightSpanHTML",
map[string]interface{}{
"type": "html",
"before": `<span class="highlight">`,
"after": `</span>`,
})
if err != nil {
panic(err)
}
Config.Cache.DefineHighlighter("html",
_, err = Config.Cache.DefineHighlighter("html",
map[string]interface{}{
"type": "simple",
"fragmenter": "simple",
"formatter": "highlightSpanHTML",
})
if err != nil {
panic(err)
}
Config.Cache.DefineHighlighter("ansi",
_, err = Config.Cache.DefineHighlighter("ansi",
map[string]interface{}{
"type": "simple",
"fragmenter": "simple",
"formatter": "ansi",
})
if err != nil {
panic(err)
}
// set the default highlighter
Config.DefaultHighlighter = "html"

View File

@ -44,10 +44,14 @@ func (h *DeleteIndexHandler) ServeHTTP(w http.ResponseWriter, req *http.Request)
}
// close the index
indexToDelete.Close()
err := indexToDelete.Close()
if err != nil {
showError(w, req, fmt.Sprintf("error closing index: %v", err), 500)
return
}
// now delete it
err := os.RemoveAll(h.indexPath(indexName))
err = os.RemoveAll(h.indexPath(indexName))
if err != nil {
showError(w, req, fmt.Sprintf("error deleting index: %v", err), 500)
return

View File

@ -52,7 +52,7 @@ type IndexReader interface {
DocCount() uint64
Close()
Close() error
}
type FieldTerms map[string][]string
@ -76,18 +76,18 @@ type TermFieldReader interface {
Next() (*TermFieldDoc, error)
Advance(ID string) (*TermFieldDoc, error)
Count() uint64
Close()
Close() error
}
type FieldReader interface {
Next() (*TermFieldDoc, error)
Close()
Close() error
}
type DocIDReader interface {
Next() (string, error)
Advance(ID string) (string, error)
Close()
Close() error
}
type Batch struct {

View File

@ -70,8 +70,8 @@ func (r *UpsideDownCouchFieldReader) Next() (*index.TermFieldDoc, error) {
}
func (r *UpsideDownCouchFieldReader) Close() {
r.iterator.Close()
func (r *UpsideDownCouchFieldReader) Close() error {
return r.iterator.Close()
}
func incrementBytes(in []byte) []byte {

View File

@ -133,6 +133,6 @@ func (i *IndexReader) DocCount() uint64 {
return i.docCount
}
func (i *IndexReader) Close() {
i.kvreader.Close()
func (i *IndexReader) Close() error {
return i.kvreader.Close()
}

View File

@ -100,8 +100,8 @@ func (r *UpsideDownCouchTermFieldReader) Advance(docID string) (*index.TermField
return nil, nil
}
func (r *UpsideDownCouchTermFieldReader) Close() {
r.iterator.Close()
func (r *UpsideDownCouchTermFieldReader) Close() error {
return r.iterator.Close()
}
type UpsideDownCouchDocIDReader struct {
@ -167,6 +167,6 @@ func (r *UpsideDownCouchDocIDReader) Advance(docID string) (string, error) {
return "", nil
}
func (r *UpsideDownCouchDocIDReader) Close() {
r.iterator.Close()
func (r *UpsideDownCouchDocIDReader) Close() error {
return r.iterator.Close()
}

View File

@ -152,8 +152,11 @@ func NewFieldRowKV(key, value []byte) (*FieldRow, error) {
rv := FieldRow{}
buf := bytes.NewBuffer(key)
buf.ReadByte() // type
err := binary.Read(buf, binary.LittleEndian, &rv.index)
_, err := buf.ReadByte() // type
if err != nil {
return nil, err
}
err = binary.Read(buf, binary.LittleEndian, &rv.index)
if err != nil {
return nil, err
}
@ -282,9 +285,11 @@ func NewTermFrequencyRowK(key []byte) (*TermFrequencyRow, error) {
doc: []byte(""),
}
buf := bytes.NewBuffer(key)
buf.ReadByte() // type
_, err := buf.ReadByte() // type
if err != nil {
return nil, err
}
var err error
err = binary.Read(buf, binary.LittleEndian, &rv.field)
if err != nil {
return nil, err
@ -439,9 +444,11 @@ func NewBackIndexRowKV(key, value []byte) (*BackIndexRow, error) {
rv := BackIndexRow{}
buf := bytes.NewBuffer(key)
buf.ReadByte() // type
_, err := buf.ReadByte() // type
if err != nil {
return nil, err
}
var err error
rv.doc, err = buf.ReadBytes(ByteSeparator)
if err == io.EOF && len(rv.doc) < 1 {
err = fmt.Errorf("invalid doc length 0")
@ -520,9 +527,11 @@ func NewStoredRowK(key []byte) (*StoredRow, error) {
rv := StoredRow{}
buf := bytes.NewBuffer(key)
buf.ReadByte() // type
_, err := buf.ReadByte() // type
if err != nil {
return nil, err
}
var err error
rv.doc, err = buf.ReadBytes(ByteSeparator)
if len(rv.doc) < 2 { // 1 for min doc id length, 1 for separator
err = fmt.Errorf("invalid doc length 0")

View File

@ -60,7 +60,10 @@ func (tksc *TopScoreCollector) Collect(searcher search.Searcher) error {
for err == nil && next != nil {
tksc.collectSingle(next)
if tksc.facetsBuilder != nil {
tksc.facetsBuilder.Update(next)
err = tksc.facetsBuilder.Update(next)
if err != nil {
break
}
}
next, err = searcher.Next()
}

View File

@ -40,7 +40,8 @@ func (ss *stubSearcher) Advance(ID string) (*search.DocumentMatch, error) {
return nil, nil
}
func (ss *stubSearcher) Close() {
func (ss *stubSearcher) Close() error {
return nil
}
func (ss *stubSearcher) Weight() float64 {

View File

@ -73,7 +73,7 @@ func (c DocumentMatchCollection) Less(i, j int) bool { return c[i].Score > c[j].
type Searcher interface {
Next() (*DocumentMatch, error)
Advance(ID string) (*DocumentMatch, error)
Close()
Close() error
Weight() float64
SetQueryNorm(float64)
Count() uint64

View File

@ -169,12 +169,18 @@ func (s *BooleanSearcher) Next() (*search.DocumentMatch, error) {
}
if s.currMustNot != nil && s.currMustNot.ID == s.currentID {
// the candidate is excluded
s.advanceNextMust()
err = s.advanceNextMust()
if err != nil {
return nil, err
}
continue
}
} else if s.currMustNot != nil && s.currMustNot.ID == s.currentID {
// the candidate is excluded
s.advanceNextMust()
err = s.advanceNextMust()
if err != nil {
return nil, err
}
continue
}
@ -192,12 +198,18 @@ func (s *BooleanSearcher) Next() (*search.DocumentMatch, error) {
}
cons = append(cons, s.currShould)
rv = s.scorer.Score(cons)
s.advanceNextMust()
err = s.advanceNextMust()
if err != nil {
return nil, err
}
break
} else if s.shouldSearcher.Min() == 0 {
// match is OK anyway
rv = s.scorer.Score([]*search.DocumentMatch{s.currMust})
s.advanceNextMust()
err = s.advanceNextMust()
if err != nil {
return nil, err
}
break
}
} else if s.currShould != nil && s.currShould.ID == s.currentID {
@ -208,16 +220,25 @@ func (s *BooleanSearcher) Next() (*search.DocumentMatch, error) {
}
cons = append(cons, s.currShould)
rv = s.scorer.Score(cons)
s.advanceNextMust()
err = s.advanceNextMust()
if err != nil {
return nil, err
}
break
} else if s.shouldSearcher == nil || s.shouldSearcher.Min() == 0 {
// match is OK anyway
rv = s.scorer.Score([]*search.DocumentMatch{s.currMust})
s.advanceNextMust()
err = s.advanceNextMust()
if err != nil {
return nil, err
}
break
}
s.advanceNextMust()
err = s.advanceNextMust()
if err != nil {
return nil, err
}
}
return rv, nil
}
@ -275,16 +296,26 @@ func (s *BooleanSearcher) Count() uint64 {
return sum
}
func (s *BooleanSearcher) Close() {
func (s *BooleanSearcher) Close() error {
if s.mustSearcher != nil {
s.mustSearcher.Close()
err := s.mustSearcher.Close()
if err != nil {
return err
}
}
if s.shouldSearcher != nil {
s.shouldSearcher.Close()
err := s.shouldSearcher.Close()
if err != nil {
return err
}
}
if s.mustNotSearcher != nil {
s.mustNotSearcher.Close()
err := s.mustNotSearcher.Close()
if err != nil {
return err
}
}
return nil
}
func (s *BooleanSearcher) Min() int {

View File

@ -182,10 +182,14 @@ func (s *ConjunctionSearcher) Count() uint64 {
return sum
}
func (s *ConjunctionSearcher) Close() {
func (s *ConjunctionSearcher) Close() error {
for _, searcher := range s.searchers {
searcher.Close()
err := searcher.Close()
if err != nil {
return err
}
}
return nil
}
func (s *ConjunctionSearcher) Min() int {

View File

@ -174,10 +174,14 @@ func (s *DisjunctionSearcher) Count() uint64 {
return sum
}
func (s *DisjunctionSearcher) Close() {
func (s *DisjunctionSearcher) Close() error {
for _, searcher := range s.searchers {
searcher.Close()
err := searcher.Close()
if err != nil {
return err
}
}
return nil
}
func (s *DisjunctionSearcher) Min() int {

View File

@ -94,8 +94,8 @@ func (s *FuzzySearcher) Advance(ID string) (*search.DocumentMatch, error) {
return s.searcher.Next()
}
func (s *FuzzySearcher) Close() {
s.searcher.Close()
func (s *FuzzySearcher) Close() error {
return s.searcher.Close()
}
func (s *FuzzySearcher) Min() int {

View File

@ -80,8 +80,8 @@ func (s *MatchAllSearcher) Advance(ID string) (*search.DocumentMatch, error) {
return docMatch, nil
}
func (s *MatchAllSearcher) Close() {
s.reader.Close()
func (s *MatchAllSearcher) Close() error {
return s.reader.Close()
}
func (s *MatchAllSearcher) Min() int {

View File

@ -44,7 +44,8 @@ func (s *MatchNoneSearcher) Advance(ID string) (*search.DocumentMatch, error) {
return nil, nil
}
func (s *MatchNoneSearcher) Close() {
func (s *MatchNoneSearcher) Close() error {
return nil
}
func (s *MatchNoneSearcher) Min() int {

View File

@ -101,8 +101,8 @@ func (s *NumericRangeSearcher) Advance(ID string) (*search.DocumentMatch, error)
return s.searcher.Advance(ID)
}
func (s *NumericRangeSearcher) Close() {
s.searcher.Close()
func (s *NumericRangeSearcher) Close() error {
return s.searcher.Close()
}
type termRange struct {

View File

@ -144,11 +144,17 @@ func (s *PhraseSearcher) Next() (*search.DocumentMatch, error) {
// return match
rv = s.currMust
rv.Locations = rvftlm
s.advanceNextMust()
err := s.advanceNextMust()
if err != nil {
return nil, err
}
return rv, nil
}
s.advanceNextMust()
err := s.advanceNextMust()
if err != nil {
return nil, err
}
}
return nil, nil
@ -176,10 +182,14 @@ func (s *PhraseSearcher) Count() uint64 {
return sum
}
func (s *PhraseSearcher) Close() {
func (s *PhraseSearcher) Close() error {
if s.mustSearcher != nil {
s.mustSearcher.Close()
err := s.mustSearcher.Close()
if err != nil {
return err
}
}
return nil
}
func (s *PhraseSearcher) Min() int {

View File

@ -86,8 +86,8 @@ func (s *TermSearcher) Advance(ID string) (*search.DocumentMatch, error) {
return docMatch, nil
}
func (s *TermSearcher) Close() {
s.reader.Close()
func (s *TermSearcher) Close() error {
return s.reader.Close()
}
func (s *TermSearcher) Min() int {

View File

@ -72,8 +72,8 @@ func (s *TermPrefixSearcher) Advance(ID string) (*search.DocumentMatch, error) {
return s.searcher.Next()
}
func (s *TermPrefixSearcher) Close() {
s.searcher.Close()
func (s *TermPrefixSearcher) Close() error {
return s.searcher.Close()
}
func (s *TermPrefixSearcher) Min() int {

View File

@ -37,7 +37,10 @@ func main() {
if err != nil {
log.Fatal(err)
}
pprof.StartCPUProfile(f)
err = pprof.StartCPUProfile(f)
if err != nil {
log.Fatal(err)
}
defer pprof.StopCPUProfile()
}