1

我能够表现得更像这样。我返回的文档集更像给定的文档。如何为不同的匹配字段提供不同的提升?假设我根据字段标题和产品描述做更多这样的事情。我想为匹配字段标题提供比描述更多的提升。

到目前为止,我正在尝试的查询是

mysolrhost:8983/solr/mlt?q=id:UTF8TEST&mlt.fl=title,description&mlt.mindf=1&mlt.mintf=1

有没有办法为标题和描述提供不同的提升?

4

1 回答 1

1

根据文档(https://cwiki.apache.org/confluence/display/solr/MoreLikeThis),您可以使用 mlt.fl 参数,它应该反映 Edismax qf 参数,因为它允许您指定每个字段的不同提升. 然而,当我尝试它时,我无法让它改变返回的结果,即使是在删除字段或设置非常高或低的提升时:(Solr MoreLikeThis 提升查询字段)。

我建议只编写自己的代码将文档转换为 solr 查询,通过 tfidf 从每个字段中选择最热门的术语,然后设置查询时间提升。如果这样做,请确保对每个字段执行长度规范化,以确保生成的查询向量的长度反映您对该字段所需的总提升。这可以通过将字段级提升除以 L2 范数来实现,将单个字段的所有术语视为单个向量,从而将每个字段的总提升分布到查询中的所有术语中。这仅在每个字段使用不同数量的术语时才重要,如果您使用相同的数量,则不需要这样做。

于 2014-08-31T18:34:21.020 回答