【问题标题】:Difference of More Like This (MLT) and normal select query in SolrSolr 中 More Like This (MLT) 和普通选择查询的区别
【发布时间】:2019-01-20 14:24:21
【问题描述】:

有人能解释一下 Solr 中 MLT 和普通选择查询的确切区别吗?我知道 Solr 使用 TF.IDF 的高级形式根据文本字段的选择查询对文档进行评分,但是使用 MLT 时评分算法有何不同?

【问题讨论】:

    标签: select text solr tf-idf


    【解决方案1】:

    我不确定这个问题是否真的有意义 - More Like This 用于查找与您已有的文档相似的更多文档。这与输入查询并想要返回某些内容不同,它们用于解决非常不同的操作模式。

    在幕后,它们都是查询,意思是“根据输入在索引中查找某些内容”,对于 MLT,它是来自现有文档的术语,而不是用户输入的查询。

    你可以看到how the MLT query is built in MoreLikeThis.java。如果我正确阅读了代码,则会使用 PriorityQueue 获取所有术语的分数,然后将其作为提升查询添加到布尔查询中的大量术语中,其中每个术语都设置为应该发生。通过这种方式,这些术语会根据 MLT 语义得到提升,同时它在幕后使用 ClassicSimilarity。

    但同样,MLT 的用例与您使用常规查询时的用例非常不同。

    【讨论】:

    • 所以我仍然不确定我是否做对了,但我的理解是,当我们想要将整个记录与另一条记录进行比较时,MLT 很有用(?!)。但在我的情况下,我只想根据它们的一个字段(名称)比较两条记录,不需要 MLT,简单的选择查询可以做这件事(对吗?)。因为我想知道如果我使用 MLT 而不是只查询名称,结果是否会更好。 (请注意,我比较的两条记录只有一个共同特征,即“名称”)
    • 我不确定您所说的“比较”是什么意思。如果您的意思是根据要进行的查询来检索文档,那么是的,查询就是您想要的。 MLT 用于在网页上实现类似“更多类似这样的文章”之类的内容,您在其中有一篇现有文章(正在阅读的文章)并且想要检索与您已经知道的相似的文档。要根据输入的名称查找文档,您需要定期查询 name:<term>
    猜你喜欢
    • 1970-01-01
    • 2012-03-07
    • 2013-02-24
    • 1970-01-01
    • 2019-11-22
    • 1970-01-01
    • 1970-01-01
    • 2016-07-15
    • 1970-01-01
    相关资源
    最近更新 更多