在 Symfony 中获取 Elasticsearch 分数
Get Elasticsearch Score in Symfony
如果您通过 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');
如果尝试从扩展 FOS\ElasticaBundle\Repository
的 class 中更改此设置,请考虑使用 $this->findHybrid()
。该方法 returns 一个包含 HybridResult
个对象的数组。每个 HybridResult
依次包含转换后的实体和结果数据(包括分数)。
如果您通过 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');
如果尝试从扩展 FOS\ElasticaBundle\Repository
的 class 中更改此设置,请考虑使用 $this->findHybrid()
。该方法 returns 一个包含 HybridResult
个对象的数组。每个 HybridResult
依次包含转换后的实体和结果数据(包括分数)。