如果您通过cURL进行获取请求,Elasticsearch将提供一个分数字段。
{
"_index": "twitter",
"_type": "tweet",
"_id": "123",
"_score": 4.2,
"firstName": "Max"
"lastName": "Mustermann"
}
有没有办法在symfony中获得这个分数。我想知道FOSElasticaBundle是否提供与以下功能类似的功能以获取分数。
$finder = $this->container->get('fos_elastica.finder.app.article');
$boolQuery = new \Elastica\Query\BoolQuery();
$fieldQuery = new \Elastica\Query\Match();
$fieldQuery->setFieldQuery('title', 'I am a title string');
$fieldQuery->setFieldParam('title', 'analyzer', 'my_analyzer');
$boolQuery->addShould($fieldQuery);
最佳答案
使用FOSElasticaBundle进行搜索时,您将获得一个带有Elastica\ResultSet
的Elastica\Result
。您可以迭代这些结果,它们具有getScore
方法来获取所需的结果。
$resultSet = $this->store->search($query);
$results = $resultSet->getResults();
foreach ($results as $result) {
$score = $result->getScore();
}
或者,您可以使用以下方法获得分数:
$result->getParam('_score');
关于php - 在Symfony中获得Elasticsearch分数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50584766/