我试图使用 SOLR 的 MLT(更像这样)功能,但被困在如何使用相关内容的过滤上。例如,我在 solr 中的文档有以下不同的类别:体育、娱乐、搞笑、商务等
我想要每个类别的相关内容(基于用户查询)。因此,我想过滤类别类型的 solr 的 MLT 结果。我可以以某种方式过滤结果吗?
如果不可能,我能否以某种方式使用 solr 函数查询来确保相关内容按类别分组?
谢谢。
我试图使用 SOLR 的 MLT(更像这样)功能,但被困在如何使用相关内容的过滤上。例如,我在 solr 中的文档有以下不同的类别:体育、娱乐、搞笑、商务等
我想要每个类别的相关内容(基于用户查询)。因此,我想过滤类别类型的 solr 的 MLT 结果。我可以以某种方式过滤结果吗?
如果不可能,我能否以某种方式使用 solr 函数查询来确保相关内容按类别分组?
谢谢。
需要定义 /mlt 请求处理程序,然后使用 fq= 过滤 MLT 的查询
在 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>',