[
https://issues.apache.org/jira/browse/LUCENE-6972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15096437#comment-15096437
]
Adrien Grand commented on LUCENE-6972:
--------------------------------------
Thanks Jim, the change looks good to me. I'll merge it soon.
> 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
> Assignee: Adrien Grand
> 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: [email protected]
For additional commands, e-mail: [email protected]