That change (a new feature, to let you control MUST vs SHOULD for each context) was done with https://issues.apache.org/jira/browse/LUCENE-6050
But it's a new feature, not a bug ... and 4.10.x is for bug fixes only, so I don't think we will backport it. Mike McCandless http://blog.mikemccandless.com On Fri, Jan 9, 2015 at 11:21 AM, Greg Huber <gregh3...@gmail.com> wrote: > Hello, > > I am trying to use multiple contexts on the > org.apache.lucene.search.suggest.analyzing.AnalyzingInfixSuggester but > there is a mistake on the CONTEXTS_FIELD_NAME, the > BooleanClause.Occur.SHOULD needs to be BooleanClause.Occur.MUST. ( see > <<<<<<<<<<<<<<<<<< below) > > I noticed that its been fixed on the trunk but not on the current release. > Does this mean its not going to be fixed on the 4.x.x release? > > version 4.10.3 > > ... > if (contexts != null) { > BooleanQuery sub = new BooleanQuery(); > query.add(sub, BooleanClause.Occur.MUST); > for (BytesRef context : contexts) { > // NOTE: we "should" wrap this in > // ConstantScoreQuery, or maybe send this as a > // Filter instead to search, but since all of > // these are MUST'd, the change to the score won't > // affect the overall ranking. Since we indexed > // as DOCS_ONLY, the perf should be the same > // either way (no freq int[] blocks to decode): > > // TODO: if we had a BinaryTermField we could fix > // this "must be valid ut8f" limitation: > sub.add(new TermQuery(new Term(CONTEXTS_FIELD_NAME, > context > .utf8ToString())), > BooleanClause.Occur.SHOULD); <<<<<<<<<<<<<<<<<< > } > } > .. > > trunk: > > .. > // do not make a subquery if all context booleans are must not > if (allMustNot == true) { > for (Map.Entry<BytesRef, BooleanClause.Occur> entry : > contextInfo.entrySet()) { > query.add(new TermQuery(new Term(CONTEXTS_FIELD_NAME, > entry.getKey().utf8ToString())), BooleanClause.Occur.MUST_NOT); > } > > } else { > BooleanQuery sub = new BooleanQuery(); > query.add(sub, BooleanClause.Occur.MUST); <<<<<<<<<<<<<<<<<< > fixed! > > for (Map.Entry<BytesRef, BooleanClause.Occur> entry : > contextInfo.entrySet()) { > // NOTE: we "should" wrap this in > // ConstantScoreQuery, or maybe send this as a > // Filter instead to search. > > // TODO: if we had a BinaryTermField we could fix > // this "must be valid ut8f" limitation: > sub.add(new TermQuery(new Term(CONTEXTS_FIELD_NAME, > entry.getKey().utf8ToString())), entry.getValue()); > } > } > .. > > Cheers Greg --------------------------------------------------------------------- To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org For additional commands, e-mail: java-user-h...@lucene.apache.org