lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sambhav Kothari (BLOOMBERG/ LONDON)" <skothar...@bloomberg.net>
Subject Improvements to the Explanation class
Date Fri, 11 Jan 2019 14:17:43 GMT
Hello,

Currently the Explanation class has a toHtml and toString method, but it doesn't seem to have
any method to output the explanation as a NamedList. Part of the reason is that NamedList
is a Solr only concept and it cannot exist in lucene. But this leads to utility functions
like (https://github.com/apache/lucene-solr/blob/1d85cd783863f75cea133fb9c452302214165a4d/solr/core/src/java/org/apache/solr/response/transform/ExplainAugmenterFactory.java#L115
and https://github.com/apache/lucene-solr/blob/1d85cd783863f75cea133fb9c452302214165a4d/solr/core/src/java/org/apache/solr/util/SolrPluginUtils.java#L400-L466

which assume a particular structure about explanations. Explanation should instead have a
toMap method which returns a Map of key-value pairs which can then be converted to a NamedList
in Solr.

This can be exceptionally useful if we have a class inheriting from Explanation that adds
more attributes. For example for Learning to Rank model explanations we can have a ModelExplanation
class which adds doc-specific feature scores and other machine learning model explanations
to the output.

It also allows the ExplainAugmenter and other classes to have a more generic way of getting
an Explanation's data in a structured format. The way it currently does so is very ugly -
https://github.com/apache/lucene-solr/blob/1d85cd783863f75cea133fb9c452302214165a4d/solr/core/src/java/org/apache/solr/response/transform/ExplainAugmenterFactory.java#L115

Just wanted to discuss this on the mailing list before creating Jira tickets.

Thanks,
Sam
Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message