我试图使用SOLR的MLT(更像是这样)功能,但却被困在如何使用相关内容的过滤。 例如,我在solr中的文档有以下不同的类别 体育,娱乐,搞笑,商务等。
我想要为每个类别提供相关的东西(基于用户查询)。因此,我想过滤基于类别类型的solr的MLT结果。 我可以以某种方式过滤结果吗?
如果不可能,我可以以某种方式使用solr函数查询来确保相关的东西按类别分组吗?
感谢。
答案 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