phpday 2025 - Call For Papers

SolrQuery::setMlt

(PECL solr >= 0.9.2)

SolrQuery::setMltHabilita o deshabilita moreLikeThis

Descripción

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

Habilita o deshabilita moreLikeThis

Parámetros

flag

true lo habilita y false lo desactiva.

Valores devueltos

Devuelve el objeto SolrQuery actual, si se usó el valor de retorno.

add a note

User Contributed Notes 1 note

up
0
duerra at nospam dot yahoo dot com
14 years ago
Note that currently, if enabling MLT results in Solr, you also need to set the MinDocFrequency and MinTermFrequency, or you will not get any results back.

<?php
$client
= new SolrClient($params);
$query = new SolrQuery();
$query->setMlt(true);
$query->addField('*,score');
$query->setMltMinDocFrequency(1);
$query->setMltMinTermFrequency(1);

//What the MLT documents will be based off of
$query->setQuery('id:doc_10');
$result = $client->query($query);
$result->setParseMode(SolrQueryResponse::PARSE_SOLR_OBJ);
$response = $result->getResponse();

//MLT returns an array of documents based off of the id field value of EACH result returned in the primary search, with an array of MLT documents for each main result document returned

//Presuming the unique field in our schema above is "id" and I know that I will only be getting one document returned in the primary result set, then:
$similarDocs = $response->moreLikeThis->doc_10->docs;

?>

Hope this helps.
To Top