2

我正在尝试使用 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 }
...

谁能告诉我做错了什么?

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

非常感谢-

4

0 回答 0