For example like this: BooleanQuery.Builder expected = new BooleanQuery.Builder();
Query param_vendor = new BoostQuery(new ConstantScoreQuery(new TermQuery(new Term("param_vendor", queryStr))), 5f); Query param_model = new BoostQuery(new ConstantScoreQuery(new TermQuery(new Term("param_model", queryStr))), 5f); Query param_value = new BoostQuery(new ConstantScoreQuery(new TermQuery(new Term("param_value", queryStr))), 3f); Query param_name = new BoostQuery(new ConstantScoreQuery(new TermQuery(new Term("param_name", queryStr))), 4f); BooleanQuery bq = expected .add(param_vendor, BooleanClause.Occur.SHOULD) .add(param_model, BooleanClause.Occur.SHOULD) .add(param_value, BooleanClause.Occur.SHOULD) .add(param_name, BooleanClause.Occur.SHOULD) .setMinimumNumberShouldMatch(1) .build(); return new BoostQuery(bq, queryBoost); Vadim On Tue, Dec 5, 2017 at 9:24 AM, Michael Sokolov <msoko...@gmail.com> wrote: > Well how did you make the original query? > > On Dec 4, 2017 12:05 PM, "Vadim Gindin" <vgin...@detectum.com> wrote: > > > Yes, thanks. My question is exactly about how to create "another extra > > query that requires all the terms in the original query" > > > > On Mon, Dec 4, 2017 at 6:50 PM, Michael Sokolov <msoko...@gmail.com> > > wrote: > > > > > I'm just saying, that when you form your query, you could also create > > > another extra query that requires all the terms in the original query, > > and > > > then combine it with the original query in a boolean where the original > > > query is required and the extra query is optional. That will give a > boost > > > when all the terms are found, although I think the scores will be > added, > > > not multiplied. > > > > > > On Dec 4, 2017 5:22 AM, "Vadim Gindin" <vgin...@detectum.com> wrote: > > > > > > > Thanks, Michael! > > > > > > > > Yes, I'm sure. Could you explain your proposal in more detail? > > > > > > > > Regards, > > > > Vadim Gindin > > > > > > > > On Mon, Dec 4, 2017 at 3:18 PM, Michael Sokolov <msoko...@gmail.com> > > > > wrote: > > > > > > > > > You could combine a Boolean and query with the same terms, as an > > > optional > > > > > clause. Are you sure about the requirement to multiply the score in > > > that > > > > > case? > > > > > > > > > > On Dec 4, 2017 5:13 AM, "Vadim Gindin" <vgin...@detectum.com> > wrote: > > > > > > > > > > > Hi all. > > > > > > > > > > > > I need to track that all query terms are matched in one document. > > > When > > > > > all > > > > > > terms are matched I need to multiply the score of such document > to > > > some > > > > > > constant coefficient. > > > > > > > > > > > > > > > > > > > > >