[jira] [Updated] (SOLR-11250) Add new LTR model which loads the model definition from the external resource

Previous Topic Next Topic
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

[jira] [Updated] (SOLR-11250) Add new LTR model which loads the model definition from the external resource

JIRA jira@apache.org

     [ https://issues.apache.org/jira/browse/SOLR-11250?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Christine Poerschke updated SOLR-11250:
    Attachment: SOLR-11250.patch

bq. ... Use SolrResourceLoader for loading external models. ...

The abstract {{WrapperModel.fetchModelMap}} method taking a {{SolrResourceLoader}} argument but then there also being a concrete {{SolrResourceWrapperModel}} class somehow seemed odd to me. So attached revised patch goes back to the no-args {{fetchModelMap()}} signature and instead adds a {{SolrResourceLoader}} member and setter to the {{WrapperModel}} class. What do you think, does that kind of make sense?

The patch also tentatively renames {{SolrResourceWrapperModel}} to {{DefaultWrapperModel}} and removes the format parameter in favour of a protected {{parseInputStream}} method called by {{fetchModelMap}}. In future a (say) YamlWrapperModel class could extend the DefaultWrapperModel and override its parseInputStream method. I've also factored out a protected {{openInputStream}} method called by {{fetchModelMap}} i.e. custom classes wishing to use something other than the SolrResourceLoader could do so by overriding that method. How does that sound?

> Add new LTR model which loads the model definition from the external resource
> -----------------------------------------------------------------------------
>                 Key: SOLR-11250
>                 URL: https://issues.apache.org/jira/browse/SOLR-11250
>             Project: Solr
>          Issue Type: Improvement
>      Security Level: Public(Default Security Level. Issues are Public)
>          Components: contrib - LTR
>            Reporter: Yuki Yano
>            Priority: Minor
>         Attachments: SOLR-11250_master.patch, SOLR-11250_master_v2.patch, SOLR-11250_master_v3.patch, SOLR-11250_master_v4.patch, SOLR-11250.patch, SOLR-11250.patch
> We add new model which contains only the location of the external model and loads it during the initialization.
> By this procedure, large models which are difficult to upload to ZooKeeper can be available.
> The new model works as the wrapper of existing models, and deligates APIs to them.
> We add two classes by this patch:
> * {{ExternalModel}} : a base class for models with external resources.
> * {{URIExternalModel}} : an implementation of {{ExternalModel}} which loads the external model from specified URI (ex. file:, http:, etc.).
> For example, if you have a model on the local disk "file:///var/models/myModel.json", the definition of {{URIExternalModel}} will be like the following.
> {code}
> {
>   "class" : "org.apache.solr.ltr.model.URIExternalModel",
>   "name" : "myURIExternalModel",
>   "features" : [],
>   "params" : {
>     "uri" : "file:///var/models/myModel.json"
>   }
> }
> {code}
> If you use LTR with {{model=myURIExternalModel}}, the model of {{myModel.json}} will be used for scoring documents.

This message was sent by Atlassian JIRA

To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]