我正在尝试使用 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?
非常感谢-