請注意,目前如果啟用 MLT 會在 Solr 中產生結果,您也需要設定 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;
?>
希望這有幫助。