У меня есть таблица SQL, в которой много записей. Когда я ищу, я не хочу использовать все результаты, но я хочу, чтобы они были среди тех идентификаторов, которые мне нужны.
Я добавил «term
» к этому и добавил «addMust
» к boolQuery
. Но результата нет. 'addShould
', как я добавляю, без поиска по моим критериям.
// only the results of the ids in the data_ids array.
$finder = $this->container->get('fos_elastica.finder.xxxxx');
$boolQuery = new \Elastica\Query\BoolQuery();
$fieldQuery = new \Elastica\Query\Match();
$fieldQuery->setFieldQuery('name', $searchKey);
$fieldQuery->setFieldFuzziness('name', 1);
$boolQuery->addShould($fieldQuery);
$termQuery = new \Elastica\Query\Term();
$termQuery->setTerm('id', $data_ids);
$boolQuery->addShould($termQuery); // Without my criteria
//$boolQuery->addMust($termQuery); // No result
$vars = $finder->find($boolQuery, $limit);
Образец !!!
// seaching id's.
$data_ids = [1,2,3,12,13,16,17,24,65,234,657,45];
если я использую addMust
; всегда выводится;
[]
если я использую addShould
; образец вывода;
[
{
"station": {
"id": 8,
"name": "ETC"
},
"area": {
"id": 1,
"name": "ETC"
},
"city": {
"id": 2,
"name": "Istanbul"
},
"district": {
"id": 2,
"name": "Besiktas"
}
}
]
но станции id 8
нет в массиве $data_ids
.
Как я могу решить эту проблему.