请注意,目前,如果在 Solr 中启用 MLT 会导致结果,您还需要设置 MinDocFrequency 和 MinTermFrequency,否则您将不会获得任何结果。
<?php
$client = new SolrClient($params);
$query = new SolrQuery();
$query->setMlt(true);
$query->addField('*,score');
$query->setMltMinDocFrequency(1);
$query->setMltMinTermFrequency(1);
// MLT 文档将基于什么
$query->setQuery('id:doc_10');
$result = $client->query($query);
$result->setParseMode(SolrQueryResponse::PARSE_SOLR_OBJ);
$response = $result->getResponse();
// MLT 返回一个文档数组,基于主搜索中返回的每个结果的 id 字段值,并且每个主结果文档返回一个 MLT 文档数组
// 假设我们上面的模式中的唯一字段是“id”,并且我知道我只会从主结果集中获取一个返回的文档,那么:
$similarDocs = $response->moreLikeThis->doc_10->docs;
?>
希望这有帮助。