Получите оценку Elasticsearch в Symfony

Elasticsearch предоставляет поле оценки, если вы выполняете запрос на получение через cURL.

{
  "_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);
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
0
600
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

При поиске с помощью 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, рассмотрите возможность использования $this->findHybrid(). Этот метод возвращает массив, содержащий объекты HybridResult. Каждый HybridResult, в свою очередь, содержит как преобразованный объект, так и данные результата (включая оценку).

Другие вопросы по теме