[
https://issues.apache.org/jira/browse/LUCENE-5816?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Nikolay Khitrin updated LUCENE-5816:
------------------------------------
Description:
For now ToParentBlockJoinQuery accepts only child
documents. Before (LUCENE-4968) passing parent document to TPBJQ lead to
undefined behavior and garbage in results, unfortunatelly it also affects
TPBJQ.advance(). After pointed patch IllegalStateException is
thrown when this occurs.
So we must always take parent-child relations into account while writing
queries. At most of time it is necessary when writing a query, but sometimes,
filters can be independent of data model (for example, ACL filters:
+TPBJQ +allowed:user).
TPBJQ shall returns parent doc if parent doc is passed to TPBJQ.advance()
or returned from childScorer.advance(). This change doesn't break anything:
results will be absolutely the same for parent-child orthogonal queries.
In few words: Document matching parent filter should be parent of itself.
was:
For now ToParentBlockJoinQuery accepts only child
documents. Before (LUCENE-4968) passing parent document to TPBJQ lead to
undefined behavior and garbage in results, unfortunatelly it also affects
TPBJQ.advance(). After pointed patch IllegalStateException is
thrown when this occurs.
So we must always take parent-child relations into account while writing
queries. At most of time it is necessary when writing a query, but sometimes,
filters can be independent of data model (for example, ACL filters:
+TPBJQ +allowed:user).
TPBJQ shall returns parent doc if parent doc is passed to TPBJQ.advance()
or returned from childScorer.advance(). This change doesn't break anything:
results will be absolutely the same for parent-child orthogonal result.
In few words: Document matching parent filter should be parent of itself.
> ToParentBlockJoinQuery deothogonalization
> -----------------------------------------
>
> Key: LUCENE-5816
> URL: https://issues.apache.org/jira/browse/LUCENE-5816
> Project: Lucene - Core
> Issue Type: Improvement
> Components: modules/join
> Affects Versions: 4.9
> Reporter: Nikolay Khitrin
> Attachments: LUCENE-5816.patch
>
>
> For now ToParentBlockJoinQuery accepts only child
> documents. Before (LUCENE-4968) passing parent document to TPBJQ lead to
> undefined behavior and garbage in results, unfortunatelly it also affects
> TPBJQ.advance(). After pointed patch IllegalStateException is
> thrown when this occurs.
> So we must always take parent-child relations into account while writing
> queries. At most of time it is necessary when writing a query, but sometimes,
> filters can be independent of data model (for example, ACL filters:
> +TPBJQ +allowed:user).
> TPBJQ shall returns parent doc if parent doc is passed to TPBJQ.advance()
> or returned from childScorer.advance(). This change doesn't break anything:
> results will be absolutely the same for parent-child orthogonal queries.
> In few words: Document matching parent filter should be parent of itself.
--
This message was sent by Atlassian JIRA
(v6.2#6252)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]