Select和More Like This(MLT)搜索之间的区别

时间:2012-10-05 04:26:05

标签: solr

使用SOLR,我的应用程序正常搜索(/select?q=)。

普通查询网址: /select?q=title:lovely

现在想在我的应用程序中实现更多这样的(MLT)。在Solr中配置MLT就像这样。

solrconfig.xml中

  <requestHandler name="/mlt" class="solr.MoreLikeThisHandler">
  <lst name="defaults">
            <str name="mlt.fl">title</str>
            <str name="mlt.mintf">1</str>
            <str name="mlt.mindf">2</str>
            <str name="mlt.boost">true</str> 
  </lst>
  </requestHandler>

网址

/mlt?q=title:lovely&mlt.fl=title

我得到的结果与MLT相同,就像普通的选择查询一样。如果我为MLT做了错误的配置,你能指导我吗?

先谢谢,

AnilJayanti

2 个答案:

答案 0 :(得分:2)

solrconfig.xml中的设置对我来说是正确的。正如Paige Cook在他的回答中提到的那样,如果您正在使用的字段设置为在schema.xml中存储术语向量termVectors=true,那么您将获得更好的结果。术语向量无法在事后添加,因此您必须重建索引才能将其添加。您可以考虑在请求中添加mlt.count参数以仅获得前N个结果

我获得良好MLT结果的经验是,参数需要基于实验进行一些微调,特别是mlt.mintf。从低开始慢慢增加,直到你开始得到“感觉正确”的结果。相似性是一个非常主观的尝试量化的东西,需要一些实验来获得正确的设置。

答案 1 :(得分:0)

根据Solr Wiki上的MoreLikeThis文档,您需要为架构中的字段启用TermVector,或者必须存储该字段。

此外,您可能需要考虑使用SearchHandler中的MoreLikeThisComponent,如上面的链接所示。但这将取决于您计划如何在应用程序中使用/实现MLT功能。