在Symfony2中使用FOSElasticaBundle进行任何搜索时清空数组

时间:2014-06-30 18:56:03

标签: php symfony elasticsearch foselasticabundle

我有一个问题,我无法解决它,我已经尝试过在网上找到的每一个东西。

所以,我在Symphony中相当新,到目前为止我没有遇到任何问题,直到我需要实现一个搜索引擎。我看了一眼,发现Elastico是一个非常好的选择,我决定实施它。

我使用composer安装它,没问题。对于最基本的搜索,我的配置如下所示:

fos_elastica:
 clients: 
    default: { host: localhost, port: 80 }
 indexes:
    search:
        client: default
        types:
            story:
                mappings:
                    name: ~
                persistence:
                    driver: orm
                    model: Website\WebBundle\Entity\Story
                    provider: ~
                    listener: ~
                    finder: ~

使用php app/console fos:elastica:populate生成数据时没有任何问题。结果是corectly插入(匹配数字或条目与数据库条目)。

所以,我的问题是无法显示任何结果。我总是将空数组作为结果:

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

也是空的结果:

$repositoryManager = $this->container->get('fos_elastica.manager'); $repository = $repositoryManager->getRepository('WebsiteWebBundle:Story'); $results = $repository->find('name');

我在数据库中有一个名为'name'的记录,所以我应该得到结果。搜索信件也不起作用。

那么,任何人都可以告诉我我做错了什么吗?或者有没有办法显示所有结果,所以我可以看到结果存在,只有搜索失败?

由于

1 个答案:

答案 0 :(得分:0)

你错过了你的映射配置。

您必须指定要编入索引的类故事的属性 即:

mappings:
      id:
       type: integer