Solr Select和More Like This(MLT)搜索之间的区别
我的应用程序在使用SOLR进行正常搜索(Solr Select和More Like This(MLT)搜索之间的区别,solr,Solr,我的应用程序在使用SOLR进行正常搜索(/select?q=)时运行良好 普通查询URL: /select?q=标题:可爱 现在我想在我的应用程序中实现更像这样的(MLT)。如下所示,在Solr中配置MLT solrconfig.xml 标题 1. 2. 真的 URL: /mlt?q=title:lovely&mlt.fl=title 我使用MLT获得的结果和计数与普通select查询相同。如果我对MLT做了任何错误的配置,你能指导我吗 提前感谢, AnilJayanti根据Solr Wik
/select?q=
)时运行良好
普通查询URL:
/select?q=标题:可爱
现在我想在我的应用程序中实现更像这样的(MLT)。如下所示,在Solr中配置MLT
solrconfig.xml
标题
1.
2.
真的
URL:
/mlt?q=title:lovely&mlt.fl=title
我使用MLT获得的结果和计数与普通select查询相同。如果我对MLT做了任何错误的配置,你能指导我吗
提前感谢,
AnilJayanti根据Solr Wiki上的文档,您需要在模式中为字段启用TermVector,或者必须存储字段
也可以考虑在上面的链接中描述的搜索处理器中使用MORILKEY组件。但这将取决于您计划如何在应用程序中使用/实现MLT功能。
我认为solrconfig.xml中的设置是正确的。正如Paige Cook在回答中提到的那样,如果将所使用的字段设置为在schema.xml中存储术语向量,termVectors=true
,则会得到更好的结果。不能在事实发生后添加术语向量,因此必须重建索引才能将它们添加到中。您可以考虑将<代码> MLT.Cudio参数添加到您的请求中,以获得仅N个顶级结果。
我在获得良好的MLT结果方面的经验是,参数需要根据实验进行一些微调,特别是MLT.mintf
。从低开始,慢慢增加,直到你开始得到“感觉正确”的结果。相似性是一个非常主观的东西,试图量化,将需要一些实验,以获得正确的设置
<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>