php - 在Symfony中获得Elasticsearch分数

标签 php symfony elasticsearch elastica foselasticabundle

如果您通过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\ResultSetElastica\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/

相关文章:

php - 无法连接到谷歌云连接服务器

php - Symfony ExpressionLanguage 评估带破折号的字符串

php - 如何在遗留应用程序中使用 Symfony 2 容器

elasticsearch - ElasticSearch嵌套必须和应该

symfony - 如何在 symfony2 上做构面 : FOSElasticaBundle?

PHP 简单 HTML DOM,通知 : Trying to get property of non-object

php - preg_replace 和 preg_match_all 之间的不同结果

exception - Symfony2 - 操纵来自内核异常监听器的请求/响应

php - 如何在 Twig 中调用 'time_diff' 过滤器

solr - MongoDB 河 VS RabbitMQ 河 VS 后台作业(resque)