1

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

所以,我是 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。结果被正确插入(与数据库条目匹配的数字或条目)。

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

$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”的记录,所以我应该得到结果。搜索字母也不起作用。

那么,谁能告诉我我做错了什么?或者有什么方法可以显示所有结果,这样我就可以看到结果在那里并且只有搜索失败?

谢谢

4

1 回答 1

0

您错过了映射配置。

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

mappings:
      id:
       type: integer
于 2014-10-28T17:57:13.770 回答