[
https://issues.apache.org/jira/browse/LUCENE-8019?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16220918#comment-16220918
]
Robert Muir commented on LUCENE-8019:
-------------------------------------
I don't like the idea of boolean query's logic being shoved into the
explanation class. This should not be in explanation, it should be generic.
I don't think explanation class should be complicated by matching/non-matching
stuff. If we want to improve the booleanweight impl (such as the strings it
puts in there), that is one thing, but its not the responsibility of
explanation to do this.
explain() is supposed to be about scoring, not matching:
{noformat}
Returns an Explanation that describes how doc scored against query.
{noformat}
We should keep it focused on that, without adding a lot of complexity related
to "matching" which is not its job. it already has enough challenges trying to
explain scores...
> Add a root failure cause to Explanation
> ----------------------------------------
>
> Key: LUCENE-8019
> URL: https://issues.apache.org/jira/browse/LUCENE-8019
> Project: Lucene - Core
> Issue Type: New Feature
> Reporter: Mike Sokolov
> Attachments: LUCENE_8019.patch
>
>
> If you need to analyze the root cause of a query's failure to match some
> document, you can use the Weight.explain() API. If you want to do some gross
> analysis of a whole batch of queries, say scraped from a log, that once
> matched, but no longer do, perhaps after some refactoring or other
> large-scale change, the Explanation isn't very good for that. You can try
> parsing its textual output, which is pretty regular, but instead I found it
> convenient to add some boolean structure to Explanation, and use that to find
> failing leaves on the Explanation tree, and report only those.
> This patch adds a "condition" to each Explanation, which can be REQUIRED,
> OPTIONAL, PROHIBITED, or NONE. The conditions correspond in obvious ways to
> the Boolean Occur, except for NONE, which is used to indicate a node which
> can't be further decomposed. It adds new Explanation construction methods for
> creating Explanations with conditions (defaulting to NONE with the existing
> methods).
> Finally Explanation.getFailureCauses() returns a list of Strings that are the
> one-line explanations of the failing queries that, if some of them had
> succeeded, would have made the original overall query match.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]