diff --git a/query_match.go b/query_match.go index 77709336..c3b1b9de 100644 --- a/query_match.go +++ b/query_match.go @@ -55,11 +55,16 @@ func (q *matchQuery) SetField(f string) Query { func (q *matchQuery) Searcher(i *indexImpl, explain bool) (search.Searcher, error) { + field := q.FieldVal + if q.FieldVal == "" { + field = i.m.DefaultField + } + analyzerName := "" if q.Analyzer != "" { analyzerName = q.Analyzer } else { - analyzerName = i.m.analyzerNameForPath(q.FieldVal) + analyzerName = i.m.analyzerNameForPath(field) } analyzer := i.m.analyzerNamed(analyzerName) @@ -67,11 +72,6 @@ func (q *matchQuery) Searcher(i *indexImpl, explain bool) (search.Searcher, erro return nil, fmt.Errorf("no analyzer named '%s' registered", q.Analyzer) } - field := q.FieldVal - if q.FieldVal == "" { - field = i.m.DefaultField - } - tokens := analyzer.Analyze([]byte(q.Match)) if len(tokens) > 0 { diff --git a/query_match_phrase.go b/query_match_phrase.go index 009ec6ae..377acb9a 100644 --- a/query_match_phrase.go +++ b/query_match_phrase.go @@ -56,22 +56,22 @@ func (q *matchPhraseQuery) SetField(f string) Query { func (q *matchPhraseQuery) Searcher(i *indexImpl, explain bool) (search.Searcher, error) { + field := q.FieldVal + if q.FieldVal == "" { + field = i.m.DefaultField + } + analyzerName := "" if q.Analyzer != "" { analyzerName = q.Analyzer } else { - analyzerName = i.m.analyzerNameForPath(q.FieldVal) + analyzerName = i.m.analyzerNameForPath(field) } analyzer := i.m.analyzerNamed(analyzerName) if analyzer == nil { return nil, fmt.Errorf("no analyzer named '%s' registered", q.Analyzer) } - field := q.FieldVal - if q.FieldVal == "" { - field = i.m.DefaultField - } - tokens := analyzer.Analyze([]byte(q.MatchPhrase)) if len(tokens) > 0 { ts := make([]string, len(tokens)) @@ -80,7 +80,6 @@ func (q *matchPhraseQuery) Searcher(i *indexImpl, explain bool) (search.Searcher } phraseQuery := NewPhraseQuery(ts, field).SetBoost(q.BoostVal) - return phraseQuery.Searcher(i, explain) } noneQuery := NewMatchNoneQuery()