【发布时间】:2019-01-20 14:24:21
【问题描述】:
有人能解释一下 Solr 中 MLT 和普通选择查询的确切区别吗?我知道 Solr 使用 TF.IDF 的高级形式根据文本字段的选择查询对文档进行评分,但是使用 MLT 时评分算法有何不同?
【问题讨论】:
有人能解释一下 Solr 中 MLT 和普通选择查询的确切区别吗?我知道 Solr 使用 TF.IDF 的高级形式根据文本字段的选择查询对文档进行评分,但是使用 MLT 时评分算法有何不同?
【问题讨论】:
我不确定这个问题是否真的有意义 - More Like This 用于查找与您已有的文档相似的更多文档。这与输入查询并想要返回某些内容不同,它们用于解决非常不同的操作模式。
在幕后,它们都是查询,意思是“根据输入在索引中查找某些内容”,对于 MLT,它是来自现有文档的术语,而不是用户输入的查询。
你可以看到how the MLT query is built in MoreLikeThis.java。如果我正确阅读了代码,则会使用 PriorityQueue 获取所有术语的分数,然后将其作为提升查询添加到布尔查询中的大量术语中,其中每个术语都设置为应该发生。通过这种方式,这些术语会根据 MLT 语义得到提升,同时它在幕后使用 ClassicSimilarity。
但同样,MLT 的用例与您使用常规查询时的用例非常不同。
【讨论】:
name:<term>。