Mike Sokolov created LUCENE-8019:
------------------------------------

             Summary: 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


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]

Reply via email to