[ https://issues.apache.org/jira/browse/LUCENE-10432?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17497399#comment-17497399 ]
Adrien Grand commented on LUCENE-10432: --------------------------------------- [~reta] I wonder if you have thought about how queries would know what name they should return in their explanations. My expectation is that we'd be introducing some form of query wrapper whose point would only be to be able to set a name or tags in the produced explanations. Then I worry that it would make some things more complicated for Lucene like query rewriting, which relies on instanceof checks, or query caching, which would consider the same queries with different names as different. Overall it looks to me like the benefits this is bringing would not be worth the problems it would introduce. > Add optional 'name' property to org.apache.lucene.search.Explanation > --------------------------------------------------------------------- > > Key: LUCENE-10432 > URL: https://issues.apache.org/jira/browse/LUCENE-10432 > Project: Lucene - Core > Issue Type: Improvement > Affects Versions: 9.0, 8.10.1 > Reporter: Andriy Redko > Priority: Minor > > Right now, the `Explanation` class has the `description` property which is > used pretty much as placeholder for free-style, human readable summary of > what is happening. This is totally fine but it would be great to have a bit > more formal way to link the explanation with corresponding function / query / > filter if supported by the underlying engine. > Example: Opensearch / Elasticseach has the concept of named queries / filters > [1]. This is not supported by Apache Lucene at the moment but it would be > helpful to propagate this information back as part of Explanation tree, for > example by introducing optional 'name' property: > > {noformat} > { > "value": 0.0, > "description": "script score function, computed with script: ...", > > "name": "script1", > "details": [ > { > "value": 1.0, > "description": "_score: ", > "details": [ > { > "value": 1.0, > "description": "*:*", > "details": [] > } > ] > } > ] > }{noformat} > > From the other side, the `name` property may look like not belonging here, > the alternative suggestion would be to add support of `properties` / > `parameters` / `tags` key/value bag, for example: > > {noformat} > { > "value": 0.0, > "description": "script score function, computed with script: ...", > > "tags": [ > { "name": "script1" } > ], > "details": [ > { > "value": 1.0, > "description": "_score: ", > "details": [ > { > "value": 1.0, > "description": "*:*", > "details": [] > } > ] > } > ] > }{noformat} > The change should be non-breaking but quite useful for engines to enrich the > `Explanation` with additional context. > [1] > https://www.elastic.co/guide/en/elasticsearch/reference/7.16/query-dsl-bool-query.html#named-queries > -- This message was sent by Atlassian Jira (v8.20.1#820001) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org For additional commands, e-mail: issues-h...@lucene.apache.org