我能够表现得更像这样。我有一组文件返回更像给定的文件。如何为不同的匹配字段提供不同的提升?假设我根据字段标题和产品描述做更多这样的事情。我想为比赛场地冠军提供比描述更多的提升。
到目前为止,我正在尝试查询
?mysolrhost:8983 / solr的/ MLT Q = ID:UTF8TEST&安培; mlt.fl =标题,描述&安培; mlt.mindf = 1&安培; mlt.mintf = 1
有没有办法为标题和描述提供不同的提升?
答案 0 :(得分:1)
根据文档(https://cwiki.apache.org/confluence/display/solr/MoreLikeThis),您可以使用mlt.fl参数,该参数可以反映Edismax qf参数,因为它允许您为每个字段指定不同的提升。然而,当我尝试它时,我无法让它改变返回的结果,即使在丢弃字段或设置非常高或低的提升时:( Solr MoreLikeThis boosting query fields)。
我建议您编写自己的代码,将文档转换为solr查询,从每个字段中选择tfidf的顶级字词,然后设置查询时间提升。如果执行此操作,请确保对每个字段执行长度规范化,以确保生成的查询向量的长度反映了您对该字段所需的总提升量。这可以通过将场级别提升除以L2范数,将单个字段的所有项目视为单个向量来实现,从而在查询中的所有项目上分配每个字段的总提升量。只有在每个字段使用不同数量的字词时,这一点非常重要,如果您使用相同的数字而不需要这样做。