我正在学习使用FOSElasticaBundle,但我无法运行有嵌套字段的查询。
目的是:在多个字段中查找query_string,包括嵌套的字段。
我的设置是:
structure:
mappings:
name: { boost: 9, type: string }
locality:
type: "nested"
properties:
locality: { boost: 8, type: string }
现在我运行此代码:
$mainQuery = new \Elastica\Query\Bool();
$searchQuery = new \Elastica\Query\QueryString();
$searchQuery->setParam('query', $query);
$searchQuery->setParam('fields', array(
'name'
));
$searchNested = new \Elastica\Query\QueryString();
$searchNested->setParam('query', $query);
$searchNested->setParam('fields', array(
'locality'
));
$nestedQuery = new \Elastica\Query\Nested();
$nestedQuery->setPath('locality');
$nestedQuery->setQuery($searchNested);
$mainQuery->addShould($searchQuery);
$mainQuery->addShould($nestedQuery);
$results = $index->search($mainQuery)->getResults();
但是没有结果!
如何使用嵌套字段创建查询?