[ https://issues.apache.org/jira/browse/LUCENE-6972?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ferenczi Jim updated LUCENE-6972: --------------------------------- Lucene Fields: New,Patch Available (was: New) > QueryBuilder should not differentiate single position and multiple positions > queries when the analyzer produces synonyms. > --------------------------------------------------------------------------------------------------------------------------- > > Key: LUCENE-6972 > URL: https://issues.apache.org/jira/browse/LUCENE-6972 > Project: Lucene - Core > Issue Type: Bug > Affects Versions: 5.4, 5.5 > Reporter: Ferenczi Jim > Fix For: 5.5 > > Attachments: LUCENE-6972.patch > > > When synonyms are involved the querybuilder differentiate two cases. When > there is only one position the query is composed of one BooleanQuery which > contains multiple should clauses. This does not interact well when trying to > apply a minimum_should_match to the query. For instance if a field has a > synonym rule like "foo,bar" the query "foo" will produce: > bq. (foo bar) > ... two optional clauses at the root level. If we apply a minimum should > match of 50% then the query becomes: > bq. (foo bar)~1 > This seems wrong, the terms are at the same position. > IMO the querybuilder should produce the following query: > bq. ((foo bar)) > ... and a minimum should match of 50% should be not applicable to a query > with only one optional clause at the root level. > The case with multiple positions works as expected. > The user query "test foo" generates: > bq. (test (foo bar)) > ... and if we apply a minimum should match of 50%: > bq. (test (foo bar))~1 -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org