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