Hello,
Currently, if we use the ExplainAugmenterFactory with LtR, instead of using the
model/re-rankers explain method, it uses the default query explain (tf-idf
explanation). This happens because the BasicResultContext doesn't wrap the
query(https://github.com/apache/lucene-solr/blob/1d85cd783863f75cea133fb9c452302214165a4d/solr/core/src/java/org/apache/solr/response/BasicResultContext.java#L67)
with the RankQuery when its set to context's query, which is then used by the
ExplainAugmenterFactory.
(https://github.com/apache/lucene-solr/blob/1d85cd783863f75cea133fb9c452302214165a4d/solr/core/src/java/org/apache/solr/response/transform/ExplainAugmenterFactory.java#L111).
As a result there are discrepancies between queries like -
http://localhost:8983/solr/collection1/select?q=*:*&collection=collectionName&wt=json&fl=[explain
style=nl],score&rq={!ltr model=linear-model}
http://localhost:8983/solr/collection1/select?q=*:*&collection=collectionName&wt=json&fl=score&rq={!ltr
model=linear-model}&debugQuery=true
the former outputs the explain from the SimilarityScorer's explain while the
latter uses the correct LtR ModelScorer's explain.
There are a few other problems with the explain augmenter - for eg. it doesn't
work with grouping (although the other doc transformers like LtR's
LTRFeatureLoggerTransformerFactory work with grouping).
Just wanted to discuss these issues before creating tickets on Jira.
Thanks,
Sam