2

/select?q=我的应用程序在使用 SOLR的普通搜索 () 中运行良好。

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

现在想在我的应用程序中实现 More Like This (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 做了任何错误的配置,你能指导我吗?

提前致谢,

阿尼尔贾扬蒂

4

2 回答 2

2

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

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

于 2012-10-05T22:35:26.207 回答
0

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

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

于 2012-10-05T17:14:59.437 回答