SolrQuery::setMlt

(PECL solr >= 0.9.2)

SolrQuery::setMlt启用或禁用 moreLikeThis

描述

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

启用或禁用 moreLikeThis

参数

flag

true 启用它,而 false 会关闭它。

返回值

如果使用了返回值,则返回当前 SolrQuery 对象。

添加注释

用户贡献的注释 1 个注释

duerra at nospam dot yahoo dot com
13 年前
请注意,目前,如果在 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;

?>

希望这有帮助。
To Top