更像是Solr Query过滤

时间:2013-04-12 11:40:07

标签: solr solrj morelikethis

我试图使用SOLR的MLT(更像是这样)功能,但却被困在如何使用相关内容的过滤。 例如,我在solr中的文档有以下不同的类别 体育,娱乐,搞笑,商务等。

我想要为每个类别提供相关的东西(基于用户查询)。因此,我想过滤基于类别类型的solr的MLT结果。 我可以以某种方式过滤结果吗?

如果不可能,我可以以某种方式使用solr函数查询来确保相关的东西按类别分组吗?

感谢。

2 个答案:

答案 0 :(得分:3)

需要定义一个/ mlt请求处理程序,然后使用fq =来过滤MLT的查询

答案 1 :(得分:1)

在solrconfig.xml定义中,您应该按如下方式定义请求处理程序:

<requestHandler name="/mlt" class="solr.MoreLikeThisHandler">
</requestHandler>

然后,您需要向此处理程序发出请求,您可以在其中指定“fq”参数。这将过滤您的MoreLikeThis(MLT)结果。请参阅以下示例,其中documentid是您要在其上查找类似结果的文档的ID,searchtext是用于比较两个文档是否相似的字段。 “rows”是请求应返回的MLT结果数。

'http://solrserver.local:4562/solr/mlt?rows=2&fl=id&mlt.fl=searchtext&fq=category:<category>&q=id:<documentid>',

请参阅Filter Query文档: https://cwiki.apache.org/confluence/display/solr/Common+Query+Parameters#CommonQueryParameters-Thefq(FilterQuery)Parameter