首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Foselasticabundle :方法返回空结果

Foselasticabundle :方法返回空结果
EN

Stack Overflow用户
提问于 2018-08-13 20:25:45
回答 1查看 548关注 0票数 2

我使用Elasticsearch和Foselasticabundle在我的Symfony应用程序中进行搜索,但它返回空结果。这是我的配置和搜索方法:

foselasticbunde.yml:

代码语言:javascript
复制
  indexes:
       search:
           finder: ~
           client: default
           types:
               course:
                   mappings:
                       id: ~
                       title: ~

                   persistence:
                       driver: orm
                       model: AppBundle\Entity\Course
                       finder: ~
                       provider: ~
                       listener: ~

SearchController.php

代码语言:javascript
复制
 public function elasticSearchAction(Request $request)
    {
        $query = $request->get('q');
        $finder = $this->container->get('fos_elastica.finder.search.course');
        $results = $finder->find($query);
        return new JsonResponse($results);
    }

但是它返回的结果是空的:

代码语言:javascript
复制
[{},{},{},{},{},{},{},{},{},{}]

问题出在哪里?我该如何解决它?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-15 01:07:15

结果是一个对象数组,我更改了我的代码:

代码语言:javascript
复制
public function elaSearchAction(Request $request)
{
    $query = $request->get('q');

    $finder = $this->container->get('fos_elastica.finder.search.course');
    $results = $finder->find($query);

    $data = array();
    foreach ($results as $course){
        $data[] = array(
            'id' => $course->getId(),
            'title' => $course->getTitle(),
            'description' => $course->getDescription(),
        );
    }

    return new JsonResponse($data);
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51822343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档