From 7fbd44224dea2f893b3b7fdb51636408a0581302 Mon Sep 17 00:00:00 2001 From: Marty Schoch Date: Wed, 3 Sep 2014 16:09:51 -0400 Subject: [PATCH] get correct field first, then use it for looking up related --- query_match.go | 12 ++++++------ query_match_phrase.go | 13 ++++++------- 2 files changed, 12 insertions(+), 13 deletions(-) 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()