Solr 6.7学习笔记(07)-- More Like This

        Solr中提供了MoreLikeThis的功能,用于查询相似的文档 。应用场景(个人理解):1. 你写的文章和别人文章相似度高的话,有一方是抄袭的可能性就很大。2. 查找相似的产品。

        MoreLikeThis 可以作为searchComponent使用,也可以作为requestHandler使用。

        MoreLikeThis 的基础属性:

参数 描述
mlt.fl 指定用于判断是否相似的字段。如可能,尽量设置这些字段的 termVectors=true
mlt.mintf 指定最小的分词频率。小于此频率的分词将不会被计算在内
mlt.mindf 指定最小的文档频率。分词所在文档的个数小于此值的话将不会被忽略。
mlt.maxdf 指定最大的文档频率。分词所在文档的个数大于此值的话将不会被忽略。比如“的”之类的词,几乎每个文档都有,此类分词不应用于相似度的计算
mlt.minwl 指定分词的最小长度。小于此长度的单词将被忽略。
mlt.maxwl 指定分词的最大长度。大于此长度的单词将被忽略。
mlt.maxqt 指定最大的用于查询的分词数
mlt.maxntp 对于termVectors=false的字段,需要分析的最大的token数。
mlt.boost 是否开启字段加权功能
mlt.qf 设置 mlt.fl中的各个字段的权重。

   

        MoreLikeThis 做为searchComponent 使用时的属性:

参数 描述
mlt 设置为true时,启用MoreLikeThis的功能
mlt.count 默认值5. 设置返回的相似的文档数

        MoreLikeThis 做为requestHandler 使用时的属性:

参数 描述
mlt.match.include 设置是否返回符合的文档。醉了,如果不返回的话,我配置这个requestHandler干嘛?
mlt.match.offset  
mlt.interestingTerms 控制如何呈现terms. 三个可选的值:none(不显示), list(列出terms), details(列出terms并加上权重信息)

例子:

<requestHandler name="/mlt" class="solr.MoreLikeThisHandler">
           <lst name="defaults">
           <str name="wt">json</str>
           <str name="fl">content,title</str>
            <str name="mlt.qf">
                content^2.0 title^1.0
            </str>
           <str name="mlt.fl">content,title</str>
           <str name="mlt.match.include">true</str>
           <str name="mlt.mintf">1</str>
           <str name="mlt.mindf">1</str>
           <str name="mlt.minwl">2</str>
           <int name="mlt.count">3</int>
       </lst>

  </requestHandler>
原文地址:https://www.cnblogs.com/langfanyun/p/7490525.html