在LTR中训练SolrFeatures时,LIBLINEAR模型缺少权重

在LTR中训练SolrFeatures时,LIBLINEAR模型缺少权重,solr,liblinear,Solr,Liblinear,我正在使用Solr 7.4.0,并使用LIBLINEAR对基于此示例的LTR模型进行培训: 但是,我发现,当我想使用SolrFeature类训练solr filter查询时,我会得到以下错误,即模型缺少权重: 这是我在feature JSON文件中定义它的方式: { "store" : "myFeatures", "name" : "category", "class" : "org.apache.solr.ltr.feature.SolrFeature",

我正在使用Solr 7.4.0,并使用LIBLINEAR对基于此示例的LTR模型进行培训:

但是,我发现,当我想使用SolrFeature类训练solr filter查询时,我会得到以下错误,即模型缺少权重:

这是我在feature JSON文件中定义它的方式:

  {
    "store" : "myFeatures",
    "name" : "category",
    "class" : "org.apache.solr.ltr.feature.SolrFeature",
    "params" : {
        "fq": ["{!terms f=category}book"]
    }
  }

原因可能是什么?我们如何解决此问题?

原因可能是您使用上述功能json文件创建的*model.json上缺少权重参数。因此,请确保您已经为FeatureJSON文件中定义的每个特性包含了权重参数

您的*model.json文件应该如下所示:

{
  "class" : "org.apache.solr.ltr.model.LinearModel",
  "name" : "myModel",
  "features" : [
    { "name" : "documentRecency" },
    { "name" : "isBook" },
    { "name" : "originalScore" }
  ],
  **"params" : {
    "weights" : {
      "documentRecency" : 1.0,
      "isBook" : 0.1,
      "originalScore" : 0.5
    }
  }**
}
有关更多信息,请参阅Solr 7.4


谢谢。

我发现这是由于与该功能相关的训练数据不足,并且无法为该功能设定适当重量的模型,从而导致错误


在我将更多与该功能相关的条目添加到培训数据后,问题没有出现。

感谢您的回复。当使用LIBLINEAR时,假设程序根据功能文件和用户查询生成model.json文件,而不是硬编码模型中的权重。现在的问题是LIBLINEAR无法基于要素文件和用户查询获取SolrFeature的权重,这导致生成的model.json文件没有weights.Hi。我仍在探索Solr LTR和liblinear。谢谢你教育我。我跟随彭博社了解各种型号及其用法。谢谢
{
  "class" : "org.apache.solr.ltr.model.LinearModel",
  "name" : "myModel",
  "features" : [
    { "name" : "documentRecency" },
    { "name" : "isBook" },
    { "name" : "originalScore" }
  ],
  **"params" : {
    "weights" : {
      "documentRecency" : 1.0,
      "isBook" : 0.1,
      "originalScore" : 0.5
    }
  }**
}