请注意,目前,如果在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;
?>
希望这有帮助。