PHP Conference Japan 2024

SolrQuery::setMlt

(PECL solr >= 0.9.2)

SolrQuery::setMlt啟用或停用 moreLikeThis

說明

public SolrQuery::setMlt(bool $flag): SolrQuery

啟用或停用 moreLikeThis

參數

flag

true 啟用它,而 false 關閉它。

回傳值

如果使用了回傳值,則回傳目前的 SolrQuery 物件。

新增註解

使用者貢獻的註解 1 則註解

0
duerra at nospam dot yahoo dot com
14 年前
請注意,目前如果啟用 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;

?>

希望這有幫助。
To Top