2024年PHP日本大会

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年前
请注意,目前,如果在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