如何使用Elastica执行前缀查询

时间:2014-06-12 16:08:31

标签: symfony elasticsearch elastica

我正在尝试使用Elastica和Elastic Search创建自动完成搜索(更具体地说,是针对Symfony2的FOSElasticaBundle)。

我创建了一个简单的索引,用对象填充它。

基本搜索有效,即:

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

我在使用前缀查询工作时遇到了一些麻烦,我在网上找不到任何示例。这是我正在尝试的:

$finder = $this->container->get('fos_elastica.finder.search.person');
$prefixQuery = new \Elastica\Query\Prefix();
$prefixQuery->setPrefix('nameFirst','Mik');
$results = $finder->find($prefixQuery);

它没有任何错误,但只是不会返回任何结果。

该字段应正确设置...我的配置如下所示:

...
            types:
                person:
                    mappings:
                        nameFirst: { boost: 10 }
                        nameLast: { boost: 10 }
                        nameMiddle: { boost: 3 }
...

谁能说出我做错了什么?

另外:Bonus问题:在nameFirst和nameLast字段上搜索前缀的最佳方法是使用NestedQuery,还是使用addParam()添加nameFirst和nameLast?

非常感谢 -

0 个答案:

没有答案